我有一小组脚本来管理应用的构建/测试/部署。最近我决定切换到Liquibase进行数据库模式管理。这个脚本既可以在开发者机器上运行,也可以在它经常被吹走的地方重建数据库,也可以在我们只添加新变更集的部署环境中运行。
当此程序首次在已部署的环境中运行时,我需要检测Liquibase是否已运行,然后运行changelogSync
以与现有表同步。
除了手动检查数据库更改日志表是否存在之外,Liquibase API是否有办法告诉我它已经运行了至少一次?
我在Groovy中使用Java核心库
答案 0 :(得分:2)
最简单的方法可能是((StandardChangeLogHistoryService) ChangeLogHistoryServiceFactory.getInstance().getChangeLogService(database)).hasDatabaseChangeLogTable()
liquibase.changelog.ChangeLogHistoryServiceFactory返回的ChangeLogHistoryService接口没有检查表是否存在的方法,但是StandardChangeLogHistoryService实现了。