2016-12-15 9 views
0

В linibase У меня есть набор изменений, который я пытаюсь запустить при условии установки env, в этом случае buildEnv, который я передаю, например, с -DbuildEnv=lcl. У меня есть это в верхней части моей ревизии:Liquibase changeet changeLogPropertyDefined - multiple properties

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

Любые идеи, как это может быть фиксированным или, возможно, будет сделано более простым способом?

ответ

1

Вам нужен <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> 
+0

Большое спасибо родственную :) – Pete