7

我在 Liquibase 版本:2.0.1。

是否可以在格式化的 sql 文件中有前置条件?如果有怎么办?一个例子将不胜感激。

我想做这样的事情,但是在 sql 格式的文件中。

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

2 回答 2

11

现在支持在 liquibase 格式的 sql 文件中指定先决条件。在变更集定义中,可以使用以下格式指定先决条件(从官方文档复制):

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

文档中注明,此时仅支持sql check前置条件类型。

完整的文档可在 liquibase 网站上找到

于 2014-12-15T22:51:13.003 回答
2

过时:该功能已添加到最新的 Liquibase 版本中。有关最新解决方案,请参阅https://stackoverflow.com/a/27494608/256561 。

不幸的是,当前的FormattedSql解析器不支持前置条件。

但是,您可以使用自己的解析器扩展默认类,如果需要,它会支持它。见http://liquibase.org/extensions

于 2011-03-15T21:04:57.367 回答