В 2020 году автору понадобилось версионировать схему ClickHouse в CI/CD, но готового инструмента на Go с поддержкой этой СУБД не нашлось. Пришлось написать собственный — db-migrator. Со временем проект оброс поддержкой Postgres, MySQL, а недавно и Iceberg, и разошёлся среди коллег по отрасли. В статье рассказывается, чем миграции в ClickHouse отличаются от привычных подходов.
Версионирование схемы в аналитических базах — отдельная инженерная задача: отличия от транзакционных СУБД влияют на то, как проектировать миграции и встраивать их в пайплайн. Опыт автора показывает, что узкая потребность может вырасти в инструмент с широкой аудиторией.
Если вы настраиваете CI/CD для ClickHouse или сравниваете миграторы, материал поможет понять, почему универсальные решения не всегда подходят с первого раза. Имеет смысл заглянуть в репозиторий db-migrator и оценить, закрывает ли он ваши сценарии.