Nos encontramos con el mismo problema y nos pusimos en contacto con AWS, quien confirmó que, de hecho, se trata de un problema con la herramienta Editor de consultas. No tienen una ETA sobre cuándo se solucionará el problema.
Solución 1:utilice psql
La buena noticia es que esto funcionará con psql
. Este es un fragmento de su correo electrónico de respuesta:
$ 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
Documentación sobre cómo configurarlo:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Solución 2:utilice la API de datos
Ya usamos la API de datos para comunicarse con nuestro clúster, por lo que, para nosotros, la solución más simple es usar la CLI de AWS y el secreto de la base de datos existente.
Puede poner la definición de su función en un function.sql
archivo:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Luego ejecútelo en la base de datos con:
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 esto sea útil, ¡buena suerte!