【问题标题】:Check that the changelog and the database are equal检查更改日志和数据库是否相等
【发布时间】:2021-07-21 07:22:59
【问题描述】:

我们使用 liquibase 来指定数据库布局和它的变化。在开发过程中,我们使用集成在 Java 应用程序中的 liquibase 来执行更新(如有必要)。

由于我们的应用程序无权在生产环境中更改架构,因此 liquibase 无法在生产环境中运行。相反,我们使用 liquibase 来生成 SQL 脚本。然后在部署我们的应用程序之前手动执行这些脚本。

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

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

【问题讨论】:

  • 您在寻找liquibase.diff吗? Javadoc here.
  • @RakhiAgrawal 不,diff 命令比较两个不同的数据库。我想比较给定的变更集文件和数据库。

标签: java liquibase


【解决方案1】:

翻遍了liquibase源码,找到了自己要找的方法:

liquibase.listUnrunChangeSets(null, null);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多