Skip to main content
Многие вопросы о работе репликации Postgres — включая столбцы TOAST, слоты репликации, публикации, изменения схемы и сопоставление типов данных — освещены в FAQ по ClickPipes для Postgres. Эта информация также применима к миграциям ClickHouse Managed Postgres.

Во время репликации появляется ошибка “invalid input value for enum”

Эта ошибка возникает, когда в исходном Postgres есть значение enum, которого нет в целевом ClickHouse Managed Postgres. Логическая репликация не передаёт команды ALTER TYPE ... ADD VALUE автоматически, поэтому новые значения enum, добавленные в источнике после первоначальной настройки схемы, приведут к сбою вставки в целевой базе. Чтобы исправить это, добавьте отсутствующее значение в тип enum в целевом Postgres:
Замените your_enum_type на имя вашего enum-типа, а 'new_value' — на отсутствующее значение из сообщения об ошибке.

Во время репликации возникает ошибка нарушения ограничения уникальности или проверки

Нарушения ограничений могут возникать при логической репликации, когда порядок репликации приводит к конфликту с существующим ограничением на целевой стороне.
  • Ограничения уникальности: Мы применяем изменения пакетами в виде операций MERGE/UPSERT, записывая последнее значение для каждого первичного ключа, поэтому порядок операций для конкретного ключа может не соответствовать порядку, ожидаемому уникальным индексом. Это может временно нарушать ограничение UNIQUE в рамках транзакции, хотя после завершения MERGE ограничение соблюдается. Postgres не может отложить проверку уникального индекса так же, как проверку внешних ключей, поэтому перенести эту проверку на конец транзакции невозможно. Это не влияет на согласованность данных: идентичность строки определяется первичным ключом, и логика MERGE использует тот же первичный ключ.
  • Ограничения проверки: Ограничение проверки на целевой стороне может быть строже, чем на стороне источника, либо промежуточное состояние при пакетном MERGE может не удовлетворять ограничению, хотя конечное состояние ему соответствует. Как и в случае с ограничениями уникальности, это не влияет на согласованность данных, поскольку MERGE использует первичный ключ, определяющий идентичность строки.
Чтобы возобновить репликацию, удалите проблемное ограничение в целевой базе данных Postgres:
Найти сведения об ограничении можно по имени из сообщения об ошибке:
Добавьте ограничения снова при переключении, после завершения репликации и отключения источника:
Последнее изменение 14 августа 2026 г.