2013-03-02 36 views
1

有相当多的关于JPA数据库模式迁移和各种工具的stackoverflow线程。但是,在为大型数据库执行建议的脱机架构迁移时,似乎都没有考虑服务停机时间可能太长。JPA实时数据库模式迁移支持工具?

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

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

  • 创建两个新的JPA实体“TruckNew”和“Engine”。
  • 调整访问“卡车”,“TruckNew”和“发动机”到DAO(或其他):
    • 使用“卡车”作为后备
    • 运行一个单独的数据迁移的线程从“卡车转换实体“到”TruckNew“和”Engine“,从而在后台执行迁移,而不会停机并对其他应用程序透明。
  • 收拾东西,重命名“TruckNew”到“卡车”

现在的问题:是否有这样的任务的任何辅助工具?任何JPA提供者的功能至少要处理部分工作?

回答

0

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

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