JPA实时数据库模式迁移支持工具



有相当多的关于JPA数据库模式迁移和各种工具的stackoverflow线程。然而,在对大型数据库进行建议的离线模式迁移时,似乎没有人考虑到服务停机时间可能太长。

这是我的第一个想法:

假设我想将一个JPA实体重构为两个JPA实体,即:"Truck"变为"Truck"one_answers"Engine"(将Engine属性移动到一个单独的实体中)。迁移计划如下所示:

  • 创建两个新的JPA实体"TruckNew"one_answers"Engine"。
  • 调整访问"Truck","TruckNew"one_answers"Engine"的DAO(或其他)为:
    • 使用"Truck"作为回退
    • 运行一个单独的数据迁移线程,将实体从"Truck"转换为"TruckNew"one_answers"Engine",从而在后台进行迁移,而不会停机,并且对应用程序的其余部分透明。
  • 清理东西,将"TruckNew"重命名为"Truck"

现在的问题是:有这样一个任务的支持工具吗?是否有任何JPA提供程序的功能至少负责其中的一部分工作?

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

一个缺点是没有复制到克隆数据库的事务将会丢失,但是使用任何事务数据库都有可能丢失。

最新更新