Сблъскахме се със същия проблем и се свързахме с AWS, който потвърди, че наистина е проблем с инструмента Query Editor. Те нямат ETA кога проблемът ще бъде отстранен.
Решение 1:Използвайте psql
Добрата новина е, че това ще работи с psql
. Това е фрагмент от техния имейл за отговор:
$ 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
Документация как да го настроите:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Решение 2:Използвайте API за данни
Вече използваме API за данни за комуникация с нашия клъстер, така че за нас най-простото решение всъщност е използването на AWS CLI и съществуващата тайна на базата данни.
Можете да поставите вашата дефиниция на функция в function.sql
файл:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
След това го изпълнете в базата данни с:
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
Надяваме се, че това е полезно, успех!