你也可以在Flyway上做很多事:http://flywaydb.org
比Liquibase简单得多。
我的方法(我们运送的产品可能需要从版本5,10,15等旧版本升级)。
- 对架构进行版本控制,并将每个版本的副本与当前架构一起保留
- 关于在数据库表中安装更新版本的商店
- 编写安装程序进程,计算从当前db版本开始的升级步骤 - >软件最新版本
- 提供一种方法,为每个版本添加自定义升级步骤,以便将表从旧架构迁移到新架构
- 重新运行所有自定义升级步骤,因为您无法处理某些内容(DDL)更改
任选地
- 有一个可以更新表而不是数据的哑模式更新程序,即重命名列,它将无法弄清楚如何处理旧数据(丢失)
- 使用自定义升级步骤有前后dumb-schema-updater步骤,第一个用于迁移哑更新程序丢失/中断的重要数据,第二个用于修复模式更新后的任何数据。