sql - 从 Liquibase 表中确定 DB 的 "version"

标签 sql liquibase

我们使用 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/

相关文章:

sql - LINQ 排除

java - 如何使用其他表中的列在 Liquibase 中创建索引?

sql - 将日期格式转换为 SELECT 中的双周存储桶

java - 接缝/hibernate : liquibase before JPA startup

database - 如何在 liquibase 中标记变更集以回滚

java - 是否可以将 postgres DB 恢复到本地 liquibase

unit-testing - 使用 Liquibase 为 Spring Boot 应用程序中的单元测试初始化​​内存中的 H2

sql - Postgresql:Autovacuum 分区表

mysql - 从所有列的结尾和开头删除非字母数字字符

sql - 标准化要走多远?