【问题标题】:Can I fail a liquibase migration when object fails to compile当对象无法编译时,我能否使 liquibase 迁移失败
【发布时间】:2014-02-11 01:50:19
【问题描述】:

我正在使用 Liquibase 3.1.1 执行 SQL 脚本,这些脚本创建已编译的数据库对象,例如视图、触发器、函数和过程。

如果数据库对象编译失败,我可以设置一个变更集属性来失败/中止迁移吗?

例如,如果我运行一个创建触发器的脚本并且该触发器编译失败,我如何才能立即停止数据库迁移?

【问题讨论】:

  • 您可以/应该使用preconditions 来处理这个问题。另请参阅@Nathan Voxland 的answer

标签: liquibase


【解决方案1】:

如果数据库在执行 SQL 命令时抛出错误,Liquibase 将自动失败。您可以使用 changeSet failOnError 属性覆盖该行为,但默认为 true 会停止数据库更新。

如果您看到 Liquibase 即使使用错误的触发器 SQL 也继续运行,则您的数据库必须允许创建它,但在执行它时会引发运行时错误。在这种情况下,您将需要在创建后使用一个 changeSet 来检查视图、触发器等,或者使用前置条件或调用它的标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2020-06-18
    • 2023-02-04
    • 2016-09-11
    • 2016-12-19
    • 2021-03-10
    相关资源
    最近更新 更多