首页 > 解决方案 > 检查更改日志和数据库是否相等

问题描述

我们使用 liquibase 来指定数据库布局及其更改。在开发过程中,如果需要,我们使用集成在 Java 应用程序中的 liquibase 来执行更新。

因为我们的应用程序无权在生产环境中更改模式,所以 liquibase 不会在生产环境中运行。相反,我们使用 liquibase 来生成 SQL 脚本。然后在部署我们的应用程序之前手动执行这些脚本。

我们希望确保数据库布局与对应于应用程序的更改日志匹配。SQL 脚本创建DATABASECHANGELOG表并插入行,就像updateliquibase 的命令所做的那样,因此有关应用的变更集的信息存储在数据库中。

但是我找不到合适的 liquibase 方法,它只检查应用程序的变更集和数据库布局/DATABASECHANGELOG是否相等。此方法不得尝试修复该问题,它应该只返回 true/false。liquibase Java API 中有这样的方法吗?

标签: javaliquibase

解决方案


在挖掘了liquibase源代码后,我找到了我正在寻找的方法:

liquibase.listUnrunChangeSets(null, null);

这正是我想要的,它似乎工作正常。


推荐阅读