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.


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

18884Знаете ли вы, что приматы появились до вымирания динозавров, и готовы ли проверить свои... 18883Четыреста колец в туманности эмбрион раскрыли тридцатилетнюю тайну звездной эволюции 18882Телескоп Джеймс Уэбб раскрыл тайны сверхэффективной звездной фабрики стрелец B2 18881Математический анализ истинного количества сквозных отверстий в человеческом теле 18880Почему даже элитные суперраспознаватели проваливают тесты на выявление дипфейков без... 18879Шесть легендарных древних городов и столиц империй, местоположение которых до сих пор... 18878Обзор самых необычных медицинских диагнозов и клинических случаев 2025 года 18877Критическая уязвимость CVE-2025-14847 в MongoDB открывает удаленный доступ к памяти... 18876Научное обоснование классификации солнца как желтого карлика класса G2V 18875Как безграничная преданность горным гориллам привела Дайан Фосси к жестокой гибели? 18874Новый родственник спинозавра из Таиланда меняет представления об эволюции хищников Азии 18873Как новая электрохимическая технология позволяет удвоить добычу водорода и снизить... 18872Могут ли ледяные гиганты Уран и Нептун на самом деле оказаться каменными? 18871Внедрение вредоносного кода в расширение Trust Wallet привело к хищению 7 миллионов... 18870Проверка клинического мышления на основе редких медицинских случаев 2025 года