如果已经应用了变更集,Liquibase会更新SQL命令行抛出错误吗?

时间:2014-06-26 15:49:04

标签: database-schema liquibase

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

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

请帮忙

1 个答案:

答案 0 :(得分:1)

如果已经运行了changeSet,则

UpdateSQL不会失败。 Liquibase的目的是跟踪哪些更改已应用,并且仅执行"执行"在跳过已经运行的那些时,尚未运行的changeSet。

如果您在常规更新模式下运行,Liquibase将依次直接执行每个changeSet。如果你在updateSql模式下运行,Liquibase实际上不会执行SQL,而是输出它本来运行的内容。

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