Encontramos o mesmo problema e entramos em contato com a AWS, que confirmou que realmente é um problema com a ferramenta Query Editor. Eles não têm um ETA sobre quando o problema será corrigido.
Solução 1:use psql
A boa notícia é que isso funcionará com
psql
. Este é um trecho do e-mail de resposta:$ psql -h database-2.cluster-xx.us-west-2.rds.amazonaws.com -d postgres -U postgres
postgres=> CREATE OR REPLACE FUNCTION trigger_set_updated_at() RETURNS TRIGGER AS $$
postgres$> BEGIN NEW.updated_at = NOW();
postgres$> RETURN NEW;END;$$
postgres-> LANGUAGE plpgsql;
CREATE FUNCTION
Documentação sobre como configurá-lo:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Solução 2:use a API de dados
Já usamos a API de dados para se comunicar com nosso cluster, portanto, para nós, a solução mais simples é usar a AWS CLI e o segredo do banco de dados existente.
Você pode colocar sua definição de função em um
function.sql
Arquivo:CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Em seguida, execute-o no banco de dados com:
cat function.sql | xargs -0 aws rds-data execute-statement \
--resource-arn arn:aws:rds:eu-west-1:xxx:cluster:cluster-name \
--secret-arn arn:aws:secretsmanager:eu-west-1:xxx:secret:secret-name-xxx \
--database "database_name" \
--sql
Espero que seja útil, boa sorte!