Liquibase可以检测它是否已经运行?

时间:2014-06-18 11:42:03

标签: liquibase

我有一小组脚本来管理应用的构建/测试/部署。最近我决定切换到Liquibase进行数据库模式管理。这个脚本既可以在开发者机器上运行,也可以在它经常被吹走的地方重建数据库,也可以在我们只添加新变更集的部署环境中运行。

当此程序首次在已部署的环境中运行时,我需要检测Liquibase是否已运行,然后运行changelogSync以与现有表同步。

除了手动检查数据库更改日志表是否存在之外,Liquibase API是否有办法告诉我它已经运行了至少一次?

我在Groovy中使用Java核心库

1 个答案:

答案 0 :(得分:2)

最简单的方法可能是((StandardChangeLogHistoryService) ChangeLogHistoryServiceFactory.getInstance().getChangeLogService(database)).hasDatabaseChangeLogTable()

liquibase.changelog.ChangeLogHistoryServiceFactory返回的ChangeLogHistoryService接口没有检查表是否存在的方法,但是StandardChangeLogHistoryService实现了。