2016-03-31 7 views
0

Мы используем Liquibase для нашего управления версиями базы данных. Мы используем его для развертывания изменений базы данных на любой уровень, например, TST, AT и PROD. Мы создаем один раз и развертываем одни и те же изменения везде, но у нас есть определенные вещи, которые нужно развернуть на определенный уровень. Я не уверен, возможно ли это или неВыполнение конкретных изменений среды от сценария Liquibase

eg

Предположим, мы храним URL-адрес приложения в БД, и каждая среда (INT, UAT, PROD) имеет собственный URL-адрес приложения. Как мы можем это сделать, используя скрипт linibase?

ответ

1

Вы можете использовать атрибуты contexts и labels, доступные для наборов изменений и команд для выполнения того, что вы хотите.

This Liquibase blog post goes into detail. Вот цитата из этой статьи, описывающие контексты:

контекстов в LiquiBase был доступен в течение довольно долгое времени, и они начали в первую очередь как способ «мечение» ревизий, чтобы они могли быть выбран во время выполнения. Одним из распространенных применений является отметка changeSets, которые вставляют тестовые данные как context = "test", так что в среде разработки и QA вы можете запускать Liquibase с помощью -contexts = test для получения тестовых данных и в производстве, с которым вы работаете - contexts = prod, чтобы не было данных теста. Контексты также полезны для маркировки changeSets на основе наборов функций , которые включают (context = "shoppingCart") или пакет (context = "pro") или даже клиент (context = "acme_inc"). Для сложных случаев несколько контекстов могут быть применены к changeSet, например context = «acme_inc, pro», и во время выполнения можно выбрать несколько контекстов , таких как -contexts = free, qa.

С Liquibase 3.2, поддержка была добавлена ​​для контекстных выражений в changeSets. Теперь, когда вы определяете свой changeSet, вы можете указать сложную логику , такую ​​как context = "! Test" или context = "qa or (acme_inc и dev)". Однако контекстная логика может быть указана только в вашем определении changeSet . При запуске Liquibase вы все равно можете указать несколько контекстов, но вы просто перечисляете все контексты, которые применимы к текущему запуску Liquibase.

 Смежные вопросы

  • Нет связанных вопросов^_^