代码之家  ›  专栏  ›  技术社区  ›  Pete

Liquibase变更集changeLogPropertyDefined-多个属性

  •  0
  • Pete  · 技术社区  · 8 年前

    在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>
    

    问题是,这似乎不是一个或检查。如果我传入上面的“lcl”,我希望它被执行,相反,我会得到消息:

    Expected changelog property 'env' to have a value of 'lcl, sit, ppte, prod'.  Got 'lcl' 
    

    有什么想法可以解决这个问题,或者可以用更简单的方式解决?

    1 回复  |  直到 8 年前
        1
  •  1
  •   a_horse_with_no_name    8 年前

    你需要一个 <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>