数据迁移工具

简介

         最近在项目中,已经到了尾期,准备给客户换上最新的系统,这时客户却要求以前的测试数据他们还要,

要保留下来。这可不是个好消息,最新的系统表字段已经有很大的变动了,更为重要的是有的设计模式都已经更改

,某些字段所储存的数据不是单纯数据而是要综合解析的数据了。为了减少工作量,做个小工具出来迁移数据,本

人对于数据存储过存不是很熟,再说不同数据库的写法也不一样,就不用存储过程了,用swing来写一个。工具的

功能不用太智能了,只要简单就行,如果要智能的话,那个工作量不比我手工来改数据的量少。

 

 

需求

    给出老数据库的sql文件,导入到新表中

 

 

思路

    因为要在短时间做出个小工具来,那么功能就不要太复杂。再说很多的更改项还是要人动的去确认的。这

样,功能的要求就出来了,对于老表和新表对照,多了字段的就删除,少了字段的就加入,给出默认值就行了。这

对于大量数据来说就已经是很简化了。


    想出了两种做法
    1.对sql文件进行处理,sql文件是用工具导出的,则他们的格式是固定的。分析sql的写法,进行解析,

用户给出第几列要删除,在哪一列要增加,增加的默认值是null,'',0 三种的哪一个。运行程序后会生成新的sql

文件,再导入到新表中就ok了。优点是对于sql文件处理就行。缺点,每次只能处理一张表,否则会出错,这样的

话sql文件如果是整个数据库文件就要将文件内容先拆分成单表的,再进行处理。由于是文件解析,则对于sql语句

中是否有null,值的要十分注意,很容易解析文件错误。


    2.将sql文件生成数据表,通过代码jdbc取出旧数据库与新数据库的差别,多字段的删,少字段的加。优

点:不需要对文件进行解析,不容易出错,直接生成新表数据。缺点:要十分注意增加的字段,如果是多表一起操

作,则很难控制到哪个表要增加的默认值是什么。而且这种方法需要数据库的支持。

 

 

处理

    因为我这老数据量不是非常的大,那我就选择了第一种方案,处理sql文件的,每次从老数据库中只导出

一张表,处理时先检查数据内容,基本没有什么null值的。处理完后再来第二张。基本上一个下午就搞定了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值