【问题标题】:Formatted SQL With PreConditions带前置条件的格式化 SQL
【发布时间】:2011-07-12 19:23:13
【问题描述】:

我使用的是 Liquibase 版本:2.0.1。

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

我想做这样的事情,但要使用 sql 格式的文件。

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

【问题讨论】:

    标签: liquibase


    【解决方案1】:

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

    很遗憾,当前的FormattedSql 解析器不支持前置条件。

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

    【讨论】:

    • 这仍然是真的吗?最新的文档 (liquibase.org/documentation/sql_format.html) 表明这是可能的,尽管我承认我无法让它工作。
    • 它不再是真的。前置条件现在应该可以正常使用格式化的 sql。
    • 已验证。我遇到了麻烦,因为 onFail 操作不正确:-)
    • 很高兴你明白了。
    【解决方案2】:

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

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

    文档中注明,目前只支持sql检查前置条件类型。

    完整的文档可通过at the liquibase website获得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多