Liquibase 4.14.0:能否基于现有变更日志与数据库生成差异变更日志?
用Liquibase 4.14.0生成变更日志与数据库差异的新变更日志
你需要的功能可以通过Liquibase的changelogSync和diffChangeLog命令实现,对应Maven目标也有支持,具体步骤如下:
Liquibase常规命令
同步现有变更日志状态
先执行这条命令,让Liquibase将现有变更日志中的所有变更标记为已应用到数据库(避免后续生成重复的变更内容):liquibase changelogSync执行前需确保已配置好数据库连接信息(可通过
liquibase.properties文件或命令行参数指定url、username、password等)。生成差异变更日志
执行这条命令对比数据库与现有变更日志的差异,将缺失的对象(比如你提到的第3张表)生成到指定的新变更日志文件中:liquibase diffChangeLog --outputFile=src/main/resources/db/changelog/missing_tables_changelog.xml
Maven目标
如果用Maven集成Liquibase,对应命令如下:
- 同步变更日志状态
mvn liquibase:changelogSync - 生成差异变更日志
mvn liquibase:diffChangeLog -Dliquibase.outputFile=src/main/resources/db/changelog/missing_tables_changelog.xml
注意事项
- 生成的变更日志建议手动校验,确认生成的SQL逻辑符合预期后,再合并到主变更日志中。
- 确保Maven的Liquibase插件版本与你使用的Liquibase 4.14.0一致,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Jonas Menne
相关产品推荐
相关产品推荐

