Vi stöter på samma problem och kom i kontakt med AWS, som bekräftade att det verkligen är ett problem med verktyget Query Editor. De har ingen ETA på när problemet ska åtgärdas.
Lösning 1:Använd psql
Den goda nyheten är att detta kommer att fungera med psql
. Det här är ett utdrag från deras svarsmail:
$ 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
Dokumentation om hur du ställer in det:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Lösning 2:Använd Data API
Vi använder redan Data API att kommunicera med vårt kluster, så för oss är den enklaste lösningen faktiskt att använda AWS CLI och den befintliga databashemligheten.
Du kan lägga in din funktionsdefinition i en function.sql
fil:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Kör sedan det på databasen med:
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
Förhoppningsvis är detta användbart, lycka till!