跳转到主要内容
关于 Postgres 复制工作机制的许多问题——包括 TOAST 列、replication slot、publication、schema 变更和数据类型映射——都可在 ClickPipes for Postgres FAQ 中找到解答。其中的信息同样适用于 Managed Postgres 迁移。

复制期间出现“枚举 输入值无效”错误

当源 Postgres 中存在目标 Managed Postgres 上没有的 枚举 值时,就会出现此错误。逻辑复制不会自动传播 ALTER TYPE ... ADD VALUE 命令,因此,如果在初始 schema 设置完成后,源端新增了 枚举 值,就会导致目标端插入失败。 要解决此问题,请在目标 Postgres 上为该 枚举 类型补上缺失的值:
ALTER TYPE your_enum_type ADD VALUE 'new_value';
your_enum_type 替换为你的枚举类型名称,并将 'new_value' 替换为错误消息中缺少的值。

复制期间出现唯一约束冲突错误

在逻辑复制期间,如果复制顺序与目标端现有的唯一约束发生冲突,就可能出现唯一约束冲突。这种情况可能出现在 CDC (变更数据捕获) 工作负载中:回放操作时会暂时违反唯一性,之后的更新才会将其消除。 要解除复制阻塞,请删除目标 Postgres 上的唯一约束:
ALTER TABLE your_table DROP CONSTRAINT your_constraint_name;
你可以运行以下命令来查看约束名称:
SELECT conname, conrelid::regclass
FROM pg_constraint
WHERE contype = 'u';
在切换期间,待复制完成且源端不再处于活动状态后,重新添加该约束:
ALTER TABLE your_table ADD CONSTRAINT your_constraint_name UNIQUE (column1, column2);
最后修改于 2026年6月10日