2012-04-24 3 views
1

Я не смог найти способ проверить элемент предварительного условия, если задано настраиваемое свойство.Liquibase: проверьте, установлено ли свойство

Что я узнал об этой проблеме до сих пор, является here. Как указывает комментарий к билету, расширение CustomPrecondition не поможет без изменения API. Есть ли другой способ?

ответ

4

documentation описывает changeLogPropertyDefined предварительное условие.

Следующий пример работал отлично для меня:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"> 

    <changeSet author="mark (generated)" id="mark-1"> 
     <preConditions onFail="HALT"> 
      <changeLogPropertyDefined property="testing" value="1"/> 
     </preConditions> 

     <createTable tableName="TEST001"> 
      <column name="ID" type="VARCHAR(10)"> 
       <constraints nullable="false"/> 
      </column> 
      <column name="X" type="VARCHAR(9)"> 
       <constraints nullable="false"/> 
      </column> 
      <column name="Y" type="DECIMAL(7,2)"/> 
      <column name="Z" type="DECIMAL(7,2)"/> 
     </createTable> 
    </changeSet> 

</databaseChangeLog> 

Я бегу LiquiBase из Maven. Свойство тестирования можно установить из командной строки следующим образом:

mvn -Dtesting=1 compile 
+0

wow, я должен быть слепым, не знаю, как я мог пропустить это :) Спасибо за ваш ответ! – nansen

+0

@nansen Имя предпосылки вводит в заблуждение. Я должен был проверить, что он работал для нормальных свойств Java –

Смежные вопросы