Wir stoßen auf das gleiche Problem und haben uns mit AWS in Verbindung gesetzt, der bestätigt hat, dass es sich tatsächlich um ein Problem mit dem Abfrage-Editor-Tool handelt. Sie haben keine voraussichtliche Ankunftszeit, wann das Problem behoben sein wird.
Lösung 1:Verwenden Sie psql
Die gute Nachricht ist, dass dies mit psql
funktioniert . Dies ist ein Ausschnitt aus ihrer Antwort-E-Mail:
$ 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 zur Einrichtung:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Lösung 2:Verwenden Sie die Daten-API
Wir verwenden bereits die Daten-API um mit unserem Cluster zu kommunizieren, daher ist die einfachste Lösung für uns tatsächlich die Verwendung der AWS CLI und des vorhandenen Datenbankgeheimnisses.
Sie können Ihre Funktionsdefinition in eine function.sql
einfügen Datei:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Dann auf der Datenbank ausführen mit:
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
Hoffentlich ist das nützlich, viel Glück!