Liquibase 变更集 changeLogPropertyDefined - 多个属性
Liquibase changeset changeLogPropertyDefined - multiple properties
在 liquibase 中,我有一个变更集,我正在尝试 运行 在设置环境 属性 的情况下,在本例中为 buildEnv,我将其与 -DbuildEnv=lcl
一起传递给例子。我的变更集顶部有这个:
<property name="env" value="${buildEnv}" dbms="oracle" />
然后下面我有:
<preConditions onFail="MARK_RAN">
<changeLogPropertyDefined property="env" value="lcl, sit, ppte, prod"/>
</preConditions>
问题是这似乎不能用作 OR 检查。如果我在上面传入 'lcl',我希望它被执行,但我收到消息:
Expected changelog property 'env' to have a value of 'lcl, sit, ppte, prod'. Got 'lcl'
知道如何解决这个问题或以更简单的方式完成吗?
你需要一个<or>
<preConditions onFail="MARK_RAN">
<or>
<changeLogPropertyDefined property="env" value="lcl"/>
<changeLogPropertyDefined property="env" value="sit"/>
<changeLogPropertyDefined property="env" value="ppte"/>
<changeLogPropertyDefined property="env" value="prod"/>
</or>
</preConditions>
在 liquibase 中,我有一个变更集,我正在尝试 运行 在设置环境 属性 的情况下,在本例中为 buildEnv,我将其与 -DbuildEnv=lcl
一起传递给例子。我的变更集顶部有这个:
<property name="env" value="${buildEnv}" dbms="oracle" />
然后下面我有:
<preConditions onFail="MARK_RAN">
<changeLogPropertyDefined property="env" value="lcl, sit, ppte, prod"/>
</preConditions>
问题是这似乎不能用作 OR 检查。如果我在上面传入 'lcl',我希望它被执行,但我收到消息:
Expected changelog property 'env' to have a value of 'lcl, sit, ppte, prod'. Got 'lcl'
知道如何解决这个问题或以更简单的方式完成吗?
你需要一个<or>
<preConditions onFail="MARK_RAN">
<or>
<changeLogPropertyDefined property="env" value="lcl"/>
<changeLogPropertyDefined property="env" value="sit"/>
<changeLogPropertyDefined property="env" value="ppte"/>
<changeLogPropertyDefined property="env" value="prod"/>
</or>
</preConditions>