如何在Spring Applications中处理生产数据库的模式升级
使用Spring框架和hibernate在生产数据库上进行升级过程的最佳实践是什么?
你也可以在Flyway上做很多事: http : //flywaydb.org
比Liquibase简单得多。
您可以尝试使用Liquibase 。 它确实支持Hibernate
我的方法(我们运送的产品可能需要从版本5,10,15等旧版本升级)。
- 对模式进行版本控制,并将每个版本的副本与当前模式一起保留
- 在您将更新的版本安装到数据库表中的商店
- 编写安装程序进程,计算从当前db版本 – >软件最新版本开始的升级步骤
- 提供一种方法,用于为每个版本添加自定义升级步骤,以将表从旧架构迁移到新架构
- 使所有自定义升级步骤重新运行,因为您无法处理某些此类内容(DDL)更改
可选
- 有一个愚蠢的架构更新程序,可以更新您的表而不是数据,即重命名列,它将无法弄清楚如何处理旧数据(丢失)
- 使用自定义升级步骤具有前后dumb-schema-updater步骤,第一个用于迁移哑更新程序将丢失/中断的重要数据,第二个用于在模式更新后修复任何数据。
- Hibernate ManyToMany和超类映射问题
- 如何在同一个Hibernate事务中运行本机SQL查询?
- 如何为AbstractRoutingDataSource安全频繁的DataSource切换?
- 收到org.hibernate.TypeMismatchExceptionexception
- Hibernate缓存策略
- org.hibernate.AnnotationException:referencedColumnNames引用未映射到单个属性
- Hibernate OnDelete Cascade不适用于MySql,但适用于postgres和Ms-Sql
- 如何在辅助表中的非主键列上连接表?
- Java:Hibernate没有看到DataBase的变化