【发布时间】:2022-01-11 18:34:16
【问题描述】:
我正在进行数据库迁移,我需要禁用表上的外键约束才能和平迁移。
来自:How do I temporarily disable triggers in PostgreSQL?
我收集到我需要超级用户权限才能运行:
SET session_replication_role = replica;
和
SET session_replication_role = DEFAULT;
但是;在谷歌云平台上,不可能获得文档中详述的这些权限:
postgres 用户是 cloudsqlsuperuser 角色的一部分,具有以下属性(权限):CREATEROLE、CREATEDB 和 LOGIN。它没有 SUPERUSER 或 REPLICATION 属性
对于这个 StackOverflow 问题:upgrade user to superuser in postgres google cloud
我还尝试通过以下方式禁用触发器:
alter table orders.orders disable trigger all;
但是;为此,在我看来,我还需要 su 权利:
ERROR: permission denied: "RI_ConstraintTrigger_a_25017" is a system trigger
那么,解决方案是什么,我什至可以禁用触发器 // 这个特定表的外键约束吗?
【问题讨论】:
标签: postgresql google-cloud-platform triggers