`
gzspark
  • 浏览: 109657 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DTS不好用?拿Eclipse RCP做个自己的数据库迁移工具

阅读更多

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

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

所以最后的选择就是自己做一个DTS好啦,思路如下:
1、选择源数据库连接与目标数据库连接
2、根据源数据库遍历所有数据库对象(表),做为基准
3、删除目标数据库所有表外键及索引、删除所有种字数据(根据约定)数据、字段均允许null
4、遍历源数据库中所有表,为目标数据库修改结构(如增删字段,字段改类型、大小)
5、将源数据库中种子数据表数据拷贝至目标数据库中
6、根据源数据库为目标数据库中的表创建外键及索引、设置是否允许为null
7、搞掂!

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

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

 

附件中是我最后完工出来的样子,欢迎交流!

 

本人原创文章,欢迎转载,转载请注明出处!

 

  • 大小: 39.4 KB
  • 大小: 49 KB
  • 大小: 42.5 KB
2
0
分享到:
评论
4 楼 ruiruixin 2010-07-29  
最近在做etl,觉得rcp挺好的,发代码给我研究研究把,谢谢

huangrx_msn@hotmail.com
3 楼 tonyshen277 2010-07-12  
楼主可以发一份到我的邮箱么? 谢谢

tonyshen277@126.com
2 楼 tan_bw 2010-06-06  
dts 处理不了CLOB类型,楼主可以发一份到我的邮箱吗?tan_bw@tom.com
1 楼 shijiyu 2009-01-19  
你有源程序没?给我发一份 研究一下 谢谢
shijiyu00@sohu.com

相关推荐

    Eclipse RCP 软件打包发布方法

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序。它提供了一整套工具和功能,使得开发者可以构建出具有丰富用户界面的应用。在开发完成后,我们需要将这些应用打包并发布,以便用户...

    eclipse RCP Plug-in开发自学教程.pdf

    eclipse RCP Plug-in开发自学教程 eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法...

    Eclipse RCP.pdf清晰版

    ### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 **Eclipse RCP**(Rich Client Platform)是一种构建丰富客户端应用程序的框架,它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,...

    Eclipse Rcp

    RCP作为一种客户端平台,其全称是Rich Client Platform,意味着一个包含必要插件的Eclipse运行时环境,它可以运行不依赖于Eclipse开发环境的应用程序。RCP应用通常拥有和Eclipse类似的外观与操作体验,例如动态的...

    Eclipse rcp深入浅出中英文版及配套代码

    Eclipse RCP,全称Eclipse Rich Client Platform,是一个基于Java的框架,用于构建桌面应用程序。这个框架由Eclipse基金会维护,是Eclipse IDE的一部分,允许开发者创建功能丰富的、可扩展的应用程序,拥有类似IDE的...

    EclipseRCP教程

    Eclipse RCP 教程 Eclipse RCP(Rich Client Platform)是一种基于 Eclipse 平台的客户端开发技术,能够帮助开发者快速构建功能强大且界面美观的桌面应用程序。在本教程中,我们将详细介绍 Eclipse RCP 的开发过程...

    eclipse rcp应用系统开发方法与实战源代码.zip

    9. **性能优化**:Eclipse RCP应用可能包含多个插件,因此性能优化是必不可少的。学习如何减少启动时间,优化内存使用,以及提升用户体验是高级开发者需要关注的问题。 10. **发布和部署**:最后,了解如何打包和...

    eclipse RCP mp3工程

    【标题】"eclipse RCP mp3工程"指的是一个基于Eclipse Rich Client Platform(RCP)构建的专门处理MP3音频文件的应用程序。Eclipse RCP是一个强大的开发框架,允许开发者创建桌面应用,它提供了丰富的用户界面组件和...

    EclipseRcp 例子程序

    Eclipse RCP(Rich Client Platform)是一个开源框架,由Eclipse基金会开发,用于构建桌面应用程序。这个框架基于Java,提供了一套完整的工具集,包括插件系统、工作台管理、视图、编辑器、透视图等,使得开发者可以...

    Eclipse RCP培训.zip

    Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用程序。这个"Eclipse RCP培训.zip"文件很可能包含了关于如何开发基于Eclipse RCP的应用程序的各种教程、示例代码和讲解材料...

    Eclipse RCP开发详解

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序,它基于Java语言并利用了Eclipse IDE的核心技术。Eclipse RCP允许开发者创建功能丰富的、可扩展的应用程序,这些应用程序拥有与Eclipse...

    ECLIPSE RCP项目源程序

    通过深入研究这个项目,你可以掌握Eclipse RCP开发的基本技巧,并能够运用到自己的项目中去。 为了充分利用这个资源,建议先从整体上了解项目结构,然后逐步深入到每个插件、类和方法,结合中文注释理解其功能和...

    Eclipse RCP(富客户端平台)开发中文语言包_3.6.0.rar

    Eclipse RCP(Rich Client Platform)是Eclipse IDE的一个核心组成部分,它提供了一个框架和工具集,用于构建桌面应用程序。Eclipse RCP允许开发者利用Java和SWT(Standard Widget Toolkit)构建功能丰富的、可定制...

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建功能丰富的、可定制的桌面应用程序。以下是对该书可能涉及的知识点的详细阐述: 1. **Eclipse RCP基础**:首先,书中会介绍Eclipse RCP的...

    eclipse RCP开发一个简单的MYSQL客户端工具介绍

    本篇文章将详细介绍如何利用Eclipse RCP开发一个简单的MySQL客户端工具,这对于想要深入理解Eclipse RCP框架以及插件开发的开发者来说是非常有帮助的。 首先,我们需要了解Eclipse RCP的基础。Eclipse RCP的核心...

    Eclipse RCP 插件开发指南

    ### Eclipse RCP 插件开发指南 #### Eclipse RCP Plugin 开发快速入门 Eclipse RCP(Rich Client Platform)插件开发是构建基于Eclipse框架的应用程序的核心技术之一。本指南旨在帮助开发者从零开始掌握Eclipse ...

    eclipse RCP开发一个简单的MYSQL客户端工具介绍_

    Eclipse RCP(Rich Client Platform)是一个用于构建...总的来说,开发这样一个Eclipse RCP MySQL客户端工具,需要综合运用Java编程、数据库操作、图形用户界面设计、插件开发等多种技能,是一个很好的学习和实践平台。

    菜鸟EclipseRCP学习之路

    标题中的“菜鸟Eclipse RCP学习之路”表明我们将探讨的是关于Eclipse Rich Client Platform(RCP)的基础知识,这是Eclipse框架下用于构建桌面应用程序的一个强大的开发平台。Eclipse RCP提供了一组可重用的组件和...

    Eclipse RCP

    标签"eclipse rcp plugin"强调了Eclipse RCP的插件特性,表明这个资源可能是一个用于增强Eclipse RCP应用程序功能的插件,例如提供了更便捷的数据操作工具或者特定领域的应用支持。 至于"genius"这个压缩包子文件的...

    Eclipse RCP详细教程

    ### Eclipse RCP 详细教程 #### 1. 富客户端平台 ##### 1.1. 概述 Eclipse RCP(Rich Client Platform)是一种基于Java的框架,它允许开发者构建高度可定制和可扩展的桌面应用。这些应用通常具有丰富的用户界面,...

Global site tag (gtag.js) - Google Analytics