We kwamen hetzelfde probleem tegen en namen contact op met AWS, die bevestigde dat het inderdaad een probleem is met de Query Editor-tool. Ze hebben geen ETA wanneer het probleem zal worden opgelost.
Oplossing 1:gebruik psql
Het goede nieuws is dat dit werkt met psql
. Dit is een fragment uit hun antwoord-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
Documentatie over hoe het in te stellen:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Oplossing 2:gebruik de Data API
We gebruiken al de Data API om met ons cluster te communiceren, dus voor ons is de eenvoudigste oplossing eigenlijk het gebruik van de AWS CLI en het bestaande databasegeheim.
U kunt uw functiedefinitie plaatsen in een function.sql
bestand:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Voer het vervolgens uit in de database met:
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
Hopelijk is dit nuttig, veel succes!