我在 Liquibase 版本:2.0.1。
是否可以在格式化的 sql 文件中有前置条件?如果有怎么办?一个例子将不胜感激。
我想做这样的事情,但是在 sql 格式的文件中。
<preConditions onFail="WARN">
<sqlCheck expectedResult="0">select count(*) from oldtable</sqlCheck>
</preConditions>
我在 Liquibase 版本:2.0.1。
是否可以在格式化的 sql 文件中有前置条件?如果有怎么办?一个例子将不胜感激。
我想做这样的事情,但是在 sql 格式的文件中。
<preConditions onFail="WARN">
<sqlCheck expectedResult="0">select count(*) from oldtable</sqlCheck>
</preConditions>
现在支持在 liquibase 格式的 sql 文件中指定先决条件。在变更集定义中,可以使用以下格式指定先决条件(从官方文档复制):
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table
文档中注明,此时仅支持sql check前置条件类型。
完整的文档可在 liquibase 网站上找到。
过时:该功能已添加到最新的 Liquibase 版本中。有关最新解决方案,请参阅https://stackoverflow.com/a/27494608/256561 。
不幸的是,当前的FormattedSql
解析器不支持前置条件。
但是,您可以使用自己的解析器扩展默认类,如果需要,它会支持它。见http://liquibase.org/extensions