Перейти к основному содержимому
Перейти к основному содержимому

Поддержка распространения изменений схемы

ClickPipes для MySQL может обнаруживать изменения схемы в исходных таблицах и, в некоторых случаях, автоматически распространять эти изменения на таблицы назначения. Обработка каждой DDL-операции описана ниже:

Тип изменения схемыПоведение
Добавление нового столбца (ALTER TABLE ADD COLUMN ...)Распространяется автоматически. Новый столбец (новые столбцы) будет (будут) заполняться для всех строк, реплицируемых после изменения схемы
Добавление нового столбца со значением по умолчанию (ALTER TABLE ADD COLUMN ... DEFAULT ...)Распространяется автоматически. Новый столбец (новые столбцы) будет (будут) заполняться для всех строк, реплицируемых после изменения схемы, но для существующих строк значение по умолчанию не будет отображаться без полного обновления таблицы
Удаление существующего столбца (ALTER TABLE DROP COLUMN ...)Обнаруживается, но не распространяется. Удалённый столбец (удалённые столбцы) будет (будут) иметь значение NULL для всех строк, реплицируемых после изменения схемы

Ограничения MySQL 5.x

Версии MySQL до 8.0.1 не включают полные метаданные столбцов в binlog (binlog_row_metadata=FULL), поэтому ClickPipes отслеживает столбцы по их порядковым позициям. Это означает:

  • Добавление столбца в конец (ALTER TABLE ADD COLUMN ...) поддерживается.
  • Любой DDL, который смещает позиции столбцов, приведёт к тому, что pipe сгенерирует ошибку, поскольку порядковые позиции больше нельзя надёжно сопоставить. К таким операциям относятся:
    • ALTER TABLE DROP COLUMN ...
    • ALTER TABLE ADD COLUMN ... AFTER ... / FIRST
    • ALTER TABLE MODIFY COLUMN ... AFTER ... / FIRST
    • ALTER TABLE CHANGE COLUMN ... AFTER ... / FIRST

Если вы столкнулись с этой ошибкой, вам нужно будет заново выполнить синхронизацию pipe.