Skip to main content
Muitas dúvidas sobre como funciona a replicação do Postgres — incluindo colunas TOAST, slots de replicação, publicações, alterações de esquema e mapeamentos de tipos de dados — são abordadas no FAQ do ClickPipes for Postgres. As informações de lá também se aplicam às migrações do ClickHouse Managed Postgres.

Estou vendo um erro de “valor de entrada inválido para enum” durante a replicação

Esse erro ocorre quando o Postgres de origem tem um valor de enum que não existe no ClickHouse Managed Postgres de destino. A replicação lógica não propaga automaticamente os comandos ALTER TYPE ... ADD VALUE, então novos valores de enum adicionados na origem após a configuração inicial do esquema farão com que as inserções falhem no destino. Para corrigir isso, adicione o valor ausente ao tipo enum no Postgres de destino:
Substitua your_enum_type pelo nome do seu tipo Enum e 'new_value' pelo valor ausente na mensagem de erro.

Estou recebendo um erro de violação de restrição de unicidade ou de verificação durante a replicação

Violações de restrição podem ocorrer durante a replicação lógica quando a ordem de replicação entra em conflito com uma restrição existente no destino.
  • Restrições de unicidade: Aplicamos as alterações como operações MERGE/UPSERT em lote que gravam o valor mais recente para cada chave primária. Portanto, a ordem das operações para uma determinada chave pode não corresponder à ordem esperada pelo índice único. Isso pode violar temporariamente uma restrição UNIQUE durante a transação, embora a restrição seja atendida após a conclusão do MERGE. O Postgres não pode adiar verificações de índice único da mesma forma que adia verificações de chave estrangeira; portanto, não é possível postergar a verificação até o fim da transação. Isso não afeta a consistência dos dados: a identidade da linha é definida pela chave primária, e a lógica do MERGE usa essa mesma chave primária.
  • Restrições de verificação: Uma restrição de verificação no destino pode ser mais rigorosa do que na origem, ou um estado intermediário durante um MERGE em lote pode não atender à restrição, mesmo que o estado final a atenda. Assim como ocorre com as restrições de unicidade, isso não afeta a consistência dos dados, pois o MERGE usa a chave primária que define a identidade da linha.
Para desbloquear a replicação, remova a restrição problemática do Postgres de destino:
Você pode encontrar os detalhes da restrição usando o nome indicado na mensagem de erro:
Adicione novamente as restrições durante a migração, após a conclusão da replicação e quando a origem não estiver mais ativa:

Estou recebendo o erro “cannot insert a non-DEFAULT value into column” durante a replicação

Esse erro ocorre quando uma coluna no destino — normalmente a chave primária — é definida como GENERATED ALWAYS AS IDENTITY. A replicação lógica envia os valores explícitos da origem, mas uma coluna GENERATED ALWAYS rejeita qualquer valor diferente de DEFAULT, fazendo com que as inserções falhem com:
Para corrigir isso, altere a coluna no Postgres de destino para aceitar valores fornecidos pelo usuário. É possível mudar a coluna de identidade para GENERATED BY DEFAULT AS IDENTITY:
GENERATED BY DEFAULT AS IDENTITY (ou uma coluna serial/bigserial) ainda gera valores automaticamente quando nenhum é informado, mas, diferentemente de GENERATED ALWAYS, também aceita valores explícitos replicados da origem.

Estou recebendo o erro “extension is not available” durante a migração

Esse erro ocorre durante a migração automatizada de esquema (pg_dump) quando o esquema de origem depende de uma extensão do Postgres que não está instalada ou disponível no Managed Postgres de destino. Ele se manifesta de uma das seguintes formas:
Substitua your_extension pela extensão mencionada na mensagem de erro. Para resolver isso:
  • Recrie o pipe usando o modo manual de dump do esquema para ajustar o esquema e remover ou substituir a dependência da extensão sem suporte, ou
  • Abra um ticket de suporte para habilitar a extensão no Managed Postgres de destino.
Última modificação em 26 de agosto de 2026