用于生成升级sql脚本的装置的制造方法

文档序号:9249135阅读:339来源:国知局
用于生成升级sql脚本的装置的制造方法
【技术领域】
[0001] 本发明设及数据库升级,特别设及基于基线版本的关系数据库升级脚本快速生成 引擎装置及方法。
【背景技术】
[0002] 数据库升级常常会耗费大量时间成本,特别是在数据库升级变更大、生产环境要 升级的基线版本多的情况下,如何实施将生产环境不同基线版本的数据库快速准确地升级 到最新版本,是软件开发项目中常常遇到的问题。
[0003] 常用的数据库升级方案有W下两种:
[0004] (1)重建数据库;重建数据库是指在生产环境重新部署全新的数据库环境,先把 生产环境数据库数据表中的核屯、业务数据备份出来,然后用最新版本的数据库S化脚本重 建生产环境,再把备份出来的业务数据导回对应数据表。该种数据库升级方案只适用于微 小型系统,并且导出导入耗费时间长、W及容易造成业务数据丢失,对于企业级系统,该种 方案完全不可行。
[0005] (2)增量升级:增量升级是指根据生产环境待升级数据库与新版本数据库表结构 的差异,编写数据库升级S化脚本,然后直接在生产环境执行升级S化脚本即完成数据库升 级,其中S化脚本包含新建/修改/删除数据表、数据字段、索引、存储过程、约束、触发器等 数据库对象,绝大多开发项目或开发人员会使用该种方案。对于数据库升级S化脚本的编 写,通常情况下是开发人员通过设计文档人工对比待升级数据库与新版本数据库表结构的 差异,手动编写升级S化脚本,该种数据库升级方法模型示意图如图1所示。
[0006] 该种增量升级数据库的方法模型,编写数据库升级S化脚本如果完全靠开发人员 人工操作,将会耗费大量人力成本。特别是对系统庞大、数据库表结构升级变更大的软件产 品,通常情况下开发人员需要根据庞大的设计文档,甚至W程序代码为参考,而且没有任何 规律可循的情况下,全人工编写数据库升级S化脚本,而且每个开发版本都如此,大大增大 软件开发项目时间和人力成本投入。

【发明内容】

[0007] 针对软件开发项目中人工编写数据库升级S化脚本效率低的缺点,本发明的发明 人提出开发一个基于基线版本快速生成数据库升级S化脚本的通用软件引擎装置,软件开 发人员可W利用该种软件引擎装置,通过同时连接基线版本数据库和目标版本数据库,根 据数据库字典对比及该引擎装置提供的S化语法规则引擎,快速生成数据库升级S化脚本 和数据库表结构差异报告,从而大幅提升软件开发项目数据库升级S化脚本编写效率,大 幅降低项目开发成本。
[000引根据本发明,提供一种用于生成升级S化脚本的装置,包括;配置客户端,所述配 置客户端用于使用户配置数据库数据源,包括选择数据库类型,W及指定基线版本数据库 和目标版本数据库;和生成部,根据所述配置客户端的调用请求,所述生成部根据预定义的 规则把所述基线版本数据库的数据字典与所述目标版本数据库的数据字典分别转换成相 应的数据库对象,比较所述基线版本数据库的数据库对象与所述目标版本数据库的数据库 对象之间的差异W产生差异分析报告,并且根据所述差异分析报告,按照相应的S化语法 规则定义,生成升级S化脚本。
[0009] 根据本发明的装置,所述选择数据库类型包括选择数据库产品名及其版本号,使 得所述生成部选择匹配的定义规则进行分析处理。
[0010] 根据本发明的装置,所述生成部包括规则定义区,所述规则定义区至少定义了各 类数据库包含的数据对象、数据对象之间的约束与依赖关系和数据对象孤L语法规则。
[0011] 根据本发明的装置,所述生成部包括数据字典加载器,所述数据字典加载器根据 所述配置客户端传送的数据生成数据建库S化脚本。
[0012] 根据本发明的装置,所述生成部包括数据对象对比分析器,所述数据对象对比分 析器对所述基线版本数据库和所述目标版本数据库的S化脚本进行语法解析,将所述SQL 脚本中的DDL语言转换成数据对象,然后根据所述规则定义区的数据对象定义、对象依赖 关系与约束的定义规则,对比分析所述基线版本数据库的数据库对象与所述目标版本数据 库的数据库对象的差异。
[0013] 根据本发明的装置,所述生成部包括报告生成器,所述报告生成器根据所述数据 库对象分析器的分析结果,生成所述基线版本数据库与所述目标版本数据库的差异报告文 件,并且生成从所述基线版本数据库升级到所述目标版本数据库的所述升级S化脚本。
【附图说明】
[0014] 在结合附图的下面的详细描述中将更全面地描述本发明的优选实施例的该些和 其它特征、方面和优点。其中
[0015] 图1是现有技术的增量式数据库升级的示意图;
[0016] 图2是本发明的生成升级S化脚本的装置的组成图;
[0017] 图3示出了MyS化数据对象语法规则树;
[0018] 图4是WMyS化数据库为例示出数据字典经抽象后的数据库对象的示意图。
【具体实施方式】
[0019] 根据本发明,提供一种生成升级S化脚本的装置。
[0020] S化脚本就是关系数据库的孤L值ataDefinitionLanguage,数据定义语言)语 句序列。
[0021] 参考图2,本发明的装置包括两部分;配置客户端201,例如可视化的配置客户端, 和用于生成差异分析报告和升级S化脚本的生成部202。
[0022] 配置客户端201用于使用户配置数据库数据源,包括选择数据库类型,W及指定 基线版本数据库和目标版本数据库。
[0023] 配置数据库数据源包括选择数据库类型,如数据库产品名(如化acle或MySQL) 及其版本号,使得生成部202选择匹配的定义规则进行分析处理;W及指定基线版本数据 库和目标版本数据库,使得进行二者之间的分析对比。
[0024] 本发明的目标是快速对比基线版本数据库与目标版本数据库之间的表结构差异, 同时生成从基线版本升级到目标版本的升级s化脚本。
[0025] 本发明只支持同构数据库之间的表结构对比分析,因此基线版本数据库和目标版 本数据库必须是同一类型的数据库,如都是化acle或MySQL。
[0026] 根据配置客户端201的调用请求,生成部202根据预定义的规则把所述基线版本 数据库的数据字典与所述目标版本数据库的数据字典分别转换成相应的数据库对象,比较 所述基线版本数据库的数据库对象与所述目标版本数据库的数据库对象之间的差异W产 生差异分析报告,并且根据所述差异分析报告,按照相应的S化语法规则定义,生成升级 S化脚本。
[0027] 根据本发明,生成部202为可视化操作客户端201和二次开发提供接口方法,主 要包含Oracle,DB2,S
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1