如何在Spring Applications中处理生产数据库上的模式升级

时间:2012-01-23 19:24:29

标签: java hibernate spring java-ee

使用Spring框架和hibernate在生产数据库上进行升级过程的最佳做法是什么?

3 个答案:

答案 0 :(得分:3)

你也可以在Flyway上做很多事:http://flywaydb.org

比Liquibase简单得多。

答案 1 :(得分:2)

您可以尝试使用Liquibase。它确实支持Hibernate

答案 2 :(得分:-1)

我的方法(我们运送的产品可能需要从版本5,10,15等旧版本升级)。

  • 对架构进行版本控制,并将每个版本的副本与当前架构一起保留
  • 关于在数据库表中安装更新版本的商店
  • 编写安装程序进程,计算从当前db版本开始的升级步骤 - >软件最新版本
  • 提供一种方法,为每个版本添加自定义升级步骤,以便将表从旧架构迁移到新架构
  • 重新运行所有自定义升级步骤,因为您无法处理某些内容(DDL)更改

任选地

  • 有一个可以更新表而不是数据的哑模式更新程序,即重命名列,它将无法弄清楚如何处理旧数据(丢失)
  • 使用自定义升级步骤有前后dumb-schema-updater步骤,第一个用于迁移哑更新程序丢失/中断的重要数据,第二个用于修复模式更新后的任何数据。