JPA live db模式迁移支持工具?

JPA live db模式迁移支持工具?,jpa,migration,schema,live,Jpa,Migration,Schema,Live,关于JPA db模式迁移和各种工具,有相当多的stackoverflow线程。然而,没有人甚至会考虑在为大型数据库做离线架构迁移时,服务宕机时间太长。 我的第一个想法是: 假设我想将一个JPA实体重构为两个JPA实体,即“Truck”重构为“Truck”和“Engine”(将Engine属性移动到单独的实体中)。迁移计划可以如下所示: 创建两个新的JPA实体“trucknowed”和“Engine” 将进入“卡车”、“卡车”和“发动机”的DAO(或其他)调整为: 使用“卡车”作为备用 运行一

关于JPA db模式迁移和各种工具,有相当多的stackoverflow线程。然而,没有人甚至会考虑在为大型数据库做离线架构迁移时,服务宕机时间太长。 我的第一个想法是:

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

  • 创建两个新的JPA实体“trucknowed”和“Engine”
  • 将进入“卡车”、“卡车”和“发动机”的DAO(或其他)调整为:
    • 使用“卡车”作为备用
    • 运行一个单独的数据迁移线程,该线程将实体从“Truck”转换为“trucknowed”和“Engine”,从而在后台进行迁移,不会停机,对应用程序的其余部分透明
  • 清理东西,把“卡车”改名为“卡车”

现在的问题是:是否有支持此类任务的工具?是否有JPA提供商的功能能够至少完成部分工作?

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

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