2015-11-11 3 views
2

Я использую LiquiBase и хотел бы выполнить один и тот же сценарий в двух разных вариантах (производство и испытания):Использование профилей в LiquiBase

<changeSet author="..." id="..."> 
    <insert tableName="..."> 
      <column name="ACTIVE" value="${isActive}" /> 
    </insert> 
</changeset> 

В настоящее время я использую свойство, чтобы управлять этим в двух файлах:

<!--File1: For production --> 
<property name="isActive" value="true"/> 

<!--File2: For tests--> 
<property name="isActive" value="false"/> 

Есть ли способ использовать что-то вроде профиля (как в Maven) или использовать аргументы командной строки в Liquibase? Я хотел бы избежать обработки двух разных файлов, один для производства и один для тестовых систем.

ответ

4

Вы можете указать context параметр для имущества или сам набор изменений:

<property name="isActive" value="true" context="prod"/> 
<property name="isActive" value="false" context="test"/> 

Затем передать параметр контекстной LiquiBase каким-то образом:

mvn liquibase:migrate -Dliquibase.contexts=prod 
+0

Это является удивительным. Спасибо вам! – user2722077

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