我正在使用 Spring、JPA/Hibernate 和 MS SQL Server/PostgreSQL 开发 Java Web 应用程序。为了使已安装系统的数据库迁移更容易,我想集成 Liquibase 以在应用程序启动时自动进行更新。目前我一直在创建更新脚本,我必须以正确的顺序手动执行。
我测试了与 Spring 的集成,我很快就让它工作了。Liquibase 的元表使用第一个变更集创建并执行更改。问题是已经存在一些已安装的系统,但将来可能会有其他安装。
Liquibase 是否可以检测数据库是否为空并在新安装的系统中自动执行 DDL?否则我将不得不手动执行 DDL,然后启动应用程序。
我想要的是数据库在它为空时自动初始化,或者如果它已经存在则更新。有没有可能用 Liquibase 做到这一点,或者有什么技巧可以让它发挥作用?