TOAST, слоты репликации, публикации, изменения схемы и сопоставление типов данных — освещены в FAQ по ClickPipes для Postgres. Эта информация также применима к миграциям ClickHouse Managed Postgres.
Во время репликации появляется ошибка “invalid input value for enum”
ALTER TYPE ... ADD VALUE автоматически, поэтому новые значения enum, добавленные в источнике после первоначальной настройки схемы, приведут к сбою вставки в целевой базе.
Чтобы исправить это, добавьте отсутствующее значение в тип enum в целевом Postgres:
your_enum_type на имя вашего enum-типа, а 'new_value' — на отсутствующее значение из сообщения об ошибке.
Во время репликации возникает ошибка нарушения ограничения уникальности или проверки
- Ограничения уникальности: Мы применяем изменения пакетами в виде операций
MERGE/UPSERT, записывая последнее значение для каждого первичного ключа, поэтому порядок операций для конкретного ключа может не соответствовать порядку, ожидаемому уникальным индексом. Это может временно нарушать ограничениеUNIQUEв рамках транзакции, хотя после завершенияMERGEограничение соблюдается. Postgres не может отложить проверку уникального индекса так же, как проверку внешних ключей, поэтому перенести эту проверку на конец транзакции невозможно. Это не влияет на согласованность данных: идентичность строки определяется первичным ключом, и логикаMERGEиспользует тот же первичный ключ. - Ограничения проверки: Ограничение проверки на целевой стороне может быть строже, чем на стороне источника, либо промежуточное состояние при пакетном
MERGEможет не удовлетворять ограничению, хотя конечное состояние ему соответствует. Как и в случае с ограничениями уникальности, это не влияет на согласованность данных, посколькуMERGEиспользует первичный ключ, определяющий идентичность строки.
При репликации возникает ошибка “cannot insert a non-DEFAULT value into column”
GENERATED ALWAYS AS IDENTITY. Логическая репликация передаёт явные значения из источника, но столбец с GENERATED ALWAYS не принимает значения, отличные от DEFAULT, поэтому операция вставки завершается ошибкой:
GENERATED BY DEFAULT AS IDENTITY:
GENERATED BY DEFAULT AS IDENTITY (или столбец serial/bigserial) по-прежнему автоматически генерирует значения, если они не заданы, но, в отличие от GENERATED ALWAYS, также допускает явно заданные значения, реплицированные из источника.
Во время миграции возникает ошибка “extension is not available”
pg_dump), если исходная схема зависит от расширения Postgres, которое не установлено или недоступно в целевом Managed Postgres. Она может проявляться в одном из следующих вариантов:
your_extension на расширение, указанное в сообщении об ошибке.
Чтобы устранить проблему, выполните одно из следующих действий:
- Пересоздайте пайп в режиме ручного экспорта схемы, чтобы изменить схему и удалить или заменить зависимость от неподдерживаемого расширения, или
- Обратитесь в службу поддержки, чтобы включить расширение в целевом Managed Postgres.