【问题标题】:Will Liquibase updateSQL command line throw error if the changeset was already applied ?如果变更集已经应用,Liquibase updateSQL 命令行会抛出错误吗?
【发布时间】:2014-08-17 13:41:53
【问题描述】:

updateSQL liquibase 命令在运行 updateSQL 命令行时似乎不会引发错误,因为它会为变更集生成相关的 SQL 语句以及要在 DATABASECHANGELOG 表中创建的条目。

我的要求是我只能生成 SQL 并将其交给我的 DBA。但是,即使在为变更集生成 SQL 之前无法创建 xml 中的变更集之一,liquibase 也会抛出错误吗?

请帮忙

【问题讨论】:

    标签: database-schema liquibase


    【解决方案1】:

    如果 changeSet 已经运行,UpdateSQL 将不会失败。 Liquibase 的目的是跟踪哪些变更集已被应用,并且仅“执行”尚未运行的变更集,同时跳过已运行的变更集。

    如果你在定期更新模式下运行,Liquibase 会直接依次执行每个 changeSet。如果你在 updateSql 模式下运行,Liquibase 不会真正执行 SQL,而是输出它本来会运行的内容。

    Liquibase 不会在 updateSQL 中抛出任何错误。但是,如果您要对其执行 SQL 文件的数据库的状态与您对其运行 updateSQL 的数据库不同,则生成的 SQL 可能无效。在 SQL 输出中没有重新检查 changeSet 是否已执行,它只是一个简单的“运行这些命令”脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 2014-09-02
      • 2023-04-02
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多