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