Chúng tôi gặp phải vấn đề tương tự và đã liên hệ với AWS, người đã xác nhận rằng đó thực sự là vấn đề với công cụ Trình chỉnh sửa truy vấn. Họ không có ETA về thời điểm sự cố sẽ được khắc phục.
Giải pháp 1:Sử dụng psql
Tin tốt là điều này sẽ hoạt động với psql
. Đây là một đoạn trích từ email trả lời của họ:
$ 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
Tài liệu về cách thiết lập: https://docs.aws .amazon.com / AmazonRDS / mới nhất / UserGuide / USER_ConnectToPostgreSQLInstance.html
Giải pháp 2:Sử dụng API dữ liệu
Chúng tôi đã sử dụng API dữ liệu để giao tiếp với cụm của chúng tôi, vì vậy đối với chúng tôi, giải pháp đơn giản nhất thực sự là sử dụng AWS CLI và bí mật cơ sở dữ liệu hiện có.
Bạn có thể đặt định nghĩa hàm của mình trong function.sql
tệp:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Sau đó thực thi nó trên cơ sở dữ liệu với:
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
Hy vọng rằng điều này là hữu ích, chúc may mắn!