我们使用 Liquibase 跨多个 MS SQL Server 数据库实例进行配置管理。如果所有数据库都执行了所有可用的 Liquibase 脚本,那么以下查询是否是确认所有数据库同步的可靠查询?我正在寻找一种从数据库脚本而不是 Maven 或任何其他命令行实用程序来执行此操作的方法。
select top 1 ID from DATABASECHANGELOG
order by DATEEXECUTED desc
最佳答案
这可能适用于非常简单的场景,但如果您的变更日志有任何类型的“条件”部分,您将需要更多的逻辑。
您真正想知道的是应用于每个数据库的更改集是否相同。由于变更集是由 id+author 标识的,因此您应该从 DATABASECHANGELOG 中获取这两列,然后对这些列进行集比较,以查看这些集是否完全相等。
关于sql - 从 Liquibase 表中确定 DB 的 "version",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842091/