java - 检查更改日志和数据库是否相等
问题描述
我们使用 liquibase 来指定数据库布局及其更改。在开发过程中,如果需要,我们使用集成在 Java 应用程序中的 liquibase 来执行更新。
因为我们的应用程序无权在生产环境中更改模式,所以 liquibase 不会在生产环境中运行。相反,我们使用 liquibase 来生成 SQL 脚本。然后在部署我们的应用程序之前手动执行这些脚本。
我们希望确保数据库布局与对应于应用程序的更改日志匹配。SQL 脚本创建DATABASECHANGELOG
表并插入行,就像update
liquibase 的命令所做的那样,因此有关应用的变更集的信息存储在数据库中。
但是我找不到合适的 liquibase 方法,它只检查应用程序的变更集和数据库布局/DATABASECHANGELOG
是否相等。此方法不得尝试修复该问题,它应该只返回 true/false。liquibase Java API 中有这样的方法吗?
解决方案
在挖掘了liquibase源代码后,我找到了我正在寻找的方法:
liquibase.listUnrunChangeSets(null, null);
这正是我想要的,它似乎工作正常。
推荐阅读
- c++ - 有没有办法在不专门转换的情况下转换存储在 QVariant 中的基本类型?
- javascript - Netsuite - 在客户端脚本中添加选择选项
- java - Gmail API 中邮箱的代理无效
- javascript - iOS设备上的离子页面问题
- python - 使用 pandas 和 groupby 创建组的子索引
- android - 在 android 中集成 twilio whatsapp SDK 时出错
- android - Listview 一次添加一项
- python - 在 Python 中基于分隔符验证 .csv 文件
- javascript - 刷新后 express-flash 消息为空
- zend-framework2 - 如何使用 Zend Db 进行分组