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>