在 liquibase 中,我有一个变更集,我试图在设置了 env 属性的条件下运行,在本例中为 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>
关于java - Liquibase 变更集 changeLogPropertyDefined - 多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41158239/