Ssylka

Как автоматизировать миграции ClickHouse с Liquibase в GitLab?

Для автоматизации миграций ClickHouse в GitLab используется Liquibase с плагином Arenadata, обеспечивающим поддержку кластеров. Разработчики пишут миграции на SQL, а Liquibase управляет их применением и откатом, используя changelog.xml файл, где каждая миграция – это отдельный changeSet, включающий SQL-скрипт и скрипт отката.
Как автоматизировать миграции ClickHouse с Liquibase в GitLab?
Изображение носит иллюстративный характер

GitLab CI/CD pipeline автоматизирует процесс миграций, начиная с валидации changelog.xml. Валидация проверяет уникальность и последовательность ID changeSet, валидность тегов tagDatabase и наличие блока <rollback> для каждого changeSet, что гарантирует возможность отката изменений. Для валидации используется Python-скрипт с библиотекой lxml.

Для развертывания изменений на dev/stg/prod контурах используется Liquibase update с параметрами подключения к ClickHouse. В случае необходимости отката изменений, Liquibase rollback использует информацию из tagDatabase для возврата к предыдущей версии БД, что возможно благодаря валидации changelog.xml, гарантирующей последовательность версий.

Таким образом, автоматизация обеспечивает полную поддержку кластерных миграций ClickHouse, минимизацию ошибок и прозрачность процесса. Каждый changeSet документируется, а состояние БД можно откатить в случае необходимости через GitLab Pipeline.


Новое на сайте

17902Lufthansa заменит 4000 административных сотрудников искусственным интеллектом 17901Каков истинный срок годности генетической информации? 17900Сможет ли закон догнать искусственный интеллект, предлагающий психотерапию? 17899Цепная реакция заражения листерией из-за одного поставщика 17898Холодный расчет: как современная наука изменила правила стирки 17897Деревянная начинка: массовый отзыв корн-догов из-за угрозы травм 17896Случайное открытие, спасшее 500 миллионов жизней 17895Мастерство мобильной съемки: полное руководство по камере iPhone 17894Что мог рассказать личный набор инструментов охотника эпохи палеолита? 17893Почему крупнейшая звездная колыбель млечного пути производит непропорционально много... 17892Обречены ли мы есть инжир с мертвыми осами внутри? 17891Почему AI-помощникам выгодно лгать, а не признавать незнание? 17890Является ли творчество искусственного интеллекта предсказуемым недостатком? 17889Как каланы цепляются за надежду? 17888Расшифрованный код древнего Египта