> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Managed Postgres 迁移常见问题解答

> 有关将数据迁移到 ClickHouse Managed Postgres 的常见问题解答。

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Private preview in ClickHouse Cloud'}
        </div>;
};

关于 Postgres 复制工作机制的许多问题——包括 `TOAST` 列、replication slot、publication、schema 变更和数据类型映射——都可在 [ClickPipes for Postgres FAQ](/zh/integrations/clickpipes/postgres/faq) 中找到解答。其中的信息同样适用于 Managed Postgres 迁移。

<div id="invalid-enum-value">
  ### 复制期间出现“枚举 输入值无效”错误
</div>

当源 Postgres 中存在目标 Managed Postgres 上没有的 枚举 值时，就会出现此错误。逻辑复制不会自动传播 `ALTER TYPE ... ADD VALUE` 命令，因此，如果在初始 schema 设置完成后，源端新增了 枚举 值，就会导致目标端插入失败。

要解决此问题，请在目标 Postgres 上为该 枚举 类型补上缺失的值：

```sql theme={null}
ALTER TYPE your_enum_type ADD VALUE 'new_value';
```

将 `your_enum_type` 替换为你的枚举类型名称，并将 `'new_value'` 替换为错误消息中缺少的值。

<div id="unique-constraint-violation">
  ### 复制期间出现唯一约束冲突错误
</div>

在逻辑复制期间，如果复制顺序与目标端现有的唯一约束发生冲突，就可能出现唯一约束冲突。这种情况可能出现在 CDC (变更数据捕获) 工作负载中：回放操作时会暂时违反唯一性，之后的更新才会将其消除。

要解除复制阻塞，请删除目标 Postgres 上的唯一约束：

```sql theme={null}
ALTER TABLE your_table DROP CONSTRAINT your_constraint_name;
```

你可以运行以下命令来查看约束名称：

```sql theme={null}
SELECT conname, conrelid::regclass
FROM pg_constraint
WHERE contype = 'u';
```

在切换期间，待复制完成且源端不再处于活动状态后，重新添加该约束：

```sql theme={null}
ALTER TABLE your_table ADD CONSTRAINT your_constraint_name UNIQUE (column1, column2);
```
