快速业务通道

拿Eclipse RCP做个自己的数据库迁移工具 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

拿Eclipse RCP做个自己的数据库迁移工具

时间:2011-08-26

我的产品是被要求运行在多种常见数据库平台下(mysql/sqlserver/oracle)下,在开发中需要严格遵循相关的规范以确保能够实现跨数据库类型的要求.(相关的要点在我的"你的系统真的因为使用hibernate就可以适应各种数据库吗? "一文中已提及).在初始开发时有一个问题是比较困扰我的团队的,我们开发的时候必定是基于某个特定的数据库开发的(比如mysql),但在测试阶段是需要在不同的数据库平台下进行兼容性测试,由于开发过程中数据库结构与种子数据变化非常快,全部编写sql方式非常浪费时间,如何能找到一种高效的数据库相互迁移的工具,是我们当时所急需的解决方案.

其实也没啥选择,比较常用的数据库迁移工具就是Sqlserver自带的DTS,这玩意在sql server数据库间进行数据导入/导出时倒确实比较好用,在不同数据库类型进行操作时,就会出多多问题,如:类型转换需手工指定/导出字段有双引号...

所以最后的选择就是自己做一个DTS好啦,思路如下:

1、选择源数据库连接与目标数据库连接

2、根据源数据库遍历所有数据库对象(表),做为基准

3、删除目标数据库所有表外键及索引、删除所有种字数据(根据约定)数据、字段均允许null

4、遍历源数据库中所有表,为目标数据库修改结构(如增删字段,字段改类型、大小)

5、将源数据库中种子数据表数据拷贝至目标数据库中

6、根据源数据库为目标数据库中的表创建外键及索引、设置是否允许为null

拿Eclipse RCP做个自己的数据库迁移工具(2)

时间:2011-08-26

7、搞掂!

完工后总代码量不过两千行(因为需考虑不同数据库的SQL Dialet,否则应该更少)

用户界面基于Eclipse RCP技术开发,使用JFace Wizard向导(如果不是想用向导的话,你可以用SWT来做)对话框获得源数据库与目标数据库的连接内容,并在用户点击完成按钮后,在进度条中提示用户执行情况.用了这个玩意以后,测试同事的数据库兼容性测试就再也不用来烦我们开发组啦!真是爽呀!当然很多喜欢折腾的客户(比如突然在哪里听说oracle是大型数据库,非让你帮他弄过去)此类朝三暮四也就自然不在话下啦!

拿Eclipse RCP做个自己的数据库迁移工具 - 编程入门网

拿Eclipse RCP做个自己的数据库迁移工具 - 编程入门网

拿Eclipse RCP做个自己的数据库迁移工具 - 编程入门网

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号