所以我需要在 aws rds 实例上的 postgres 中导入 django 固定装置(例如,本质上是 django 的数据库转储)。我已经在本地测试了数据库的约束都是有效的(通过在副本中本地导入)。然后我将fixture推送到aws django服务器,并使用django的loaddata函数加载它们,django会将它们推送到rds db。
为了加载这些夹具(因为许多模型的 fk 相互引用),我需要禁用 postgres 中的 fk 检查以加载数据。为此,我有一个脚本:
begin;
alter table foo_bar disable trigger all;
.... other tables same cmd ....
commit;
然后,我使用 enable 运行类似的命令列表来重新设置约束。
当我在我的副本中本地测试它时,它运行良好。但是,在 rds 上,当我尝试运行脚本(使用 Dbeaver 连接到数据库)时,出现此错误:
SQLERROR [42501]: permission denied: "RI_constrainttrigger_a_19346" is a system trigger.
我似乎明白这将是由于我当前的用户没有权限(在 rds postgres 实例上)执行该操作?
我的问题是:如何检查/更改 rds 实例的权限,以便我的 postgres 用户有权运行该命令?
PS:我对 postgres/rds 不是很了解,所以最好为可能不明显的事情提供一些背景知识。谢谢!