【发布时间】:2014-08-17 13:41:53
【问题描述】:
updateSQL liquibase 命令在运行 updateSQL 命令行时似乎不会引发错误,因为它会为变更集生成相关的 SQL 语句以及要在 DATABASECHANGELOG 表中创建的条目。
我的要求是我只能生成 SQL 并将其交给我的 DBA。但是,即使在为变更集生成 SQL 之前无法创建 xml 中的变更集之一,liquibase 也会抛出错误吗?
请帮忙
【问题讨论】:
updateSQL liquibase 命令在运行 updateSQL 命令行时似乎不会引发错误,因为它会为变更集生成相关的 SQL 语句以及要在 DATABASECHANGELOG 表中创建的条目。
我的要求是我只能生成 SQL 并将其交给我的 DBA。但是,即使在为变更集生成 SQL 之前无法创建 xml 中的变更集之一,liquibase 也会抛出错误吗?
请帮忙
【问题讨论】:
如果 changeSet 已经运行,UpdateSQL 将不会失败。 Liquibase 的目的是跟踪哪些变更集已被应用,并且仅“执行”尚未运行的变更集,同时跳过已运行的变更集。
如果你在定期更新模式下运行,Liquibase 会直接依次执行每个 changeSet。如果你在 updateSql 模式下运行,Liquibase 不会真正执行 SQL,而是输出它本来会运行的内容。
Liquibase 不会在 updateSQL 中抛出任何错误。但是,如果您要对其执行 SQL 文件的数据库的状态与您对其运行 updateSQL 的数据库不同,则生成的 SQL 可能无效。在 SQL 输出中没有重新检查 changeSet 是否已执行,它只是一个简单的“运行这些命令”脚本。
【讨论】: