我有一个应用程序,每当应用程序第一次在机器上运行时,Hibernate 都会创建我所有的表模式。这很好用。
然而,现在我想知道 Hibernate 是否有某种机制来保持数据库处于版本控制之下,即当我运行不同版本的应用程序并且 Hibernate 发现与旧版本不同的数据库模式时,Hibernate 是否知道如何将一个模式迁移到另一个模式版本存在?考虑到 Hibernate 可以读取现有模式并且可以将模式与映射描述进行比较,我以某种方式认为这应该是可能的。但是,我不知道如何告诉 Hibernate 迁移旧数据,就像使用 Liquibase / Flyway 创建更改脚本时一样。
自从 Hibernate 和版本控制将向您展示很多关于审计和现场版本控制的命中时,我可能没有在谷歌上搜索到正确的东西,但我更多地考虑 Liquibase / Flyway 类型的版本控制。我从来没有考虑过两者,但由于 Hibernate 不创建更新脚本而是直接操作数据库,我不知道如何使两者一起工作。
这是我第一次让 Hibernate 创建我的模式,而不是编写我自己的脚本。我这样做是为了利用Hibernate Envers,这使得手动创建脚本变得更加乏味。也许我错过了一些明显的东西。感谢您对此事的任何意见!
更新:我今天要和 Flyway 的开发人员交谈,他告诉我他不知道有什么好的解决方案。也许什么都没有?