2011-03-10 28 views
4

我在Liquibase版本:2.0.1。帶PreConditions的帶格式的SQL

是否有可能在格式化的sql文件中有前提條件?如果是這樣如何?一個例子,將不勝感激。

我想做這樣的事情,但在sql格式的文件。

<preConditions onFail="WARN"> 
    <sqlCheck expectedResult="0">select count(*) from oldtable</sqlCheck> 
</preConditions> 

回答

6

現在支持在liquibase格式的sql文件中指定前置條件。

--preconditions onFail:HALT onError:HALT 
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table 

它只有SQL檢查前提類型在這個時候支持文檔中指出:在一個變更的定義,先決條件可以使用以下格式(從官方文檔複製)來指定。

完整文檔可用at the liquibase website

2

不幸的是,當前的FormattedSql解析器不支持先決條件。

但是,您可以使用您自己的解析器來擴展默認類,如果需要,它可以支持它。請參閱http://liquibase.org/extensions

+0

這是真的嗎?最新的文檔(http://www.liquibase.org/documentation/sql_format.html)表明這是可能的,但我承認無法使這個工作。 – 2014-12-15 18:42:56

+1

它不再是真的。先決條件現在應該適用於格式化的sql。 – 2014-12-15 19:09:39

+0

已驗證。我遇到了麻煩,因爲onFail操作不正確:-) – 2014-12-15 22:44:39