一次使用JUnit + JPA 实现数据Migrate的实例介绍

£神魔★判官ぃ 2024-04-06 11:43 37阅读 0赞

项目状况与数据迁移背景

项目本身是基于 Spring Boot+JPA+Hibernate 的项目,项目具体框架如下:

  1. 使用Maven管理项目
  2. 使用JPA注解配置实体类
  3. 数据库是Oracle

因为以上项目有对旧系统部分功能模块的迁移, 新模块的表在新项目中已经建立出来了,实体类有部分的改变。 现在要把旧的数据表的资料迁移到新的表中,Migrate 数据有如下差异:

  1. 原表的字段和新表的字段命名不同
  2. 相近类型的字段的类型不同
  3. 原表的一条数据可能会对应到新表多个数据
  4. 部分的字段不是直接对应, 需要一些逻辑判断和运算之后才能写入新表中。

方案探求与分析

针对此需求,Migrate 的方式大概有以下五种:

  1. 纯SQL层面的迁移
  2. 在项目中编写迁移代码
  3. 创建单独的项目用于迁移数据
  4. 在项目中使用Spring Boot 的单元测试
    5.在项目中使用 JPA+ JUnit (不使用Spring Boot)

    • 使用最底层的SQL 插入的话, 有逻辑判断在里面, 有一些栏位是需要重新计算并设值,迁移较为麻烦, 另外, 旧表的数据量打, 单纯使用SQL,工作量太大, 而且容易出错。
    • 在项目中编写迁移代码, 这个迁移在模块上线后就没有用处了, 所以这些代码就属于废代码了。
    • 创建单独的项目用于迁移数据 ,因为迁移数据时,需要使用到原项目的一些实体类和公用类。如果从项目中完全复制过来,是可以暂时解决, 但

发表评论

表情:
评论列表 (有 0 条评论,37人围观)

还没有评论,来说两句吧...

相关阅读

    相关 junit学习之junit基本介绍

    Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要。在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码