1

有很多关于 JPA db 模式迁移和各种工具的 stackoverflow 线程。但是,在为大型数据库执行建议的脱机模式迁移时,似乎没有人甚至考虑过可能太长的服务停机时间。

所以这是我的第一个想法:

假设我想将一个 JPA 实体重构为两个 JPA 实体,即。“卡车”分为“卡车”和“引擎”(将引擎属性移动到单独的实体中)。迁移计划可能如下所示:

  • 创建两个新的 JPA 实体“TruckNew”和“Engine”。
  • 将访问“Truck”、“TruckNew”和“Engine”的 DAO(或其他)调整为:
    • 使用“卡车”作为后备
    • 运行一个单独的数据迁移线程,将实体从“Truck”转换为“TruckNew”和“Engine”,从而在后台进行迁移,无需停机,并且对其余应用程序透明。
  • 清理东西,将“TruckNew”重命名为“Truck”

现在的问题是:是否有针对此类任务的支持工具?任何 JPA 提供程序功能至少可以完成部分工作?

4

1 回答 1

0

我看到了这个想法,它看起来可行,但将数据库克隆到migration_db 不是更好的方法。使用工具/脚本迁移您的架构,然后使用带有新代码的单元测试来测试修改。最后,将您的环境指向带有更新实体的迁移代码库的新安装。

一个缺点是未复制到克隆数据库的事务会丢失,但这也可能使用几乎任何事务数据库。

于 2013-06-03T20:54:59.763 回答