有很多关于 JPA db 模式迁移和各种工具的 stackoverflow 线程。但是,在为大型数据库执行建议的脱机模式迁移时,似乎没有人甚至考虑过可能太长的服务停机时间。
所以这是我的第一个想法:
假设我想将一个 JPA 实体重构为两个 JPA 实体,即。“卡车”分为“卡车”和“引擎”(将引擎属性移动到单独的实体中)。迁移计划可能如下所示:
- 创建两个新的 JPA 实体“TruckNew”和“Engine”。
- 将访问“Truck”、“TruckNew”和“Engine”的 DAO(或其他)调整为:
- 使用“卡车”作为后备
- 运行一个单独的数据迁移线程,将实体从“Truck”转换为“TruckNew”和“Engine”,从而在后台进行迁移,无需停机,并且对其余应用程序透明。
- 清理东西,将“TruckNew”重命名为“Truck”
现在的问题是:是否有针对此类任务的支持工具?任何 JPA 提供程序功能至少可以完成部分工作?