检查更改日志和数据库是否相等

Check that the changelog and the database are equal

我们使用 liquibase 来指定数据库布局及其变化。在开发中,我们使用集成在 Java 应用程序中的 liquibase 在必要时执行更新。

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

我们想确保数据库布局与应用程序对应的变更日志相匹配。 SQL 脚本创建 DATABASECHANGELOG table 并像 liquibase 的 update 命令那样插入行,因此有关应用的变更集的信息存储在数据库中。

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

在深入挖掘 liquibase 源代码后,我找到了我要找的方法:

liquibase.listUnrunChangeSets(null, null);

这正是我想要的,它似乎运行良好。