在liquibase中使用配置文件

时间:2015-11-11 07:53:20

标签: parameter-passing 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中使用命令行参数?我想避免处理两个不同的文件,一个用于生产,一个用于测试系统。

2 个答案:

答案 0 :(得分:5)

您可以为property或changeSet本身指定context参数:

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

然后以某种方式将context参数传递给liquibase:

mvn liquibase:migrate -Dliquibase.contexts=prod

答案 1 :(得分:0)

如果您使用cmd或终端,请使用:

--contexts=prod