在后台管理系统中实现数据库升级的系统和方法技术方案

技术编号:2842025 阅读:306 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种在后台管理系统中实现数据库升级的系统,其包括版本识别子系统、版本升级子系统和描述/知识系统,其中版本识别子系统产生和维护软件现有各个版本数据库的描述/知识;版本升级子系统利用所述描述/知识对数据库进行升级;描述/知识系统由若干描述文件组成,是版本升级子系统的输入,版本识别子系统的输出。本发明专利技术还涉及一种相应的数据库升级的方法,其包括版本识别子系统产生和维护软件现有各个版本数据库的描述/知识的步骤以及版本升级子系统利用上述描述/知识对数据库进行升级的步骤。本发明专利技术可应用于嵌入式通信系统中,其能实现智能化和自动化升级,能自动识别源版本和目的版本,实现后台管理系统的数据库随软件版本升级而平滑升级。

【技术实现步骤摘要】

本专利技术涉及一种数据库升级的系统和方法,尤其涉及一种。
技术介绍
软件产品在完全停止开发以前,都存在版本升级的可能,因种种原因,要求由低版本升级到高版本。在嵌入式通信系统中一般都是采用前后台这样一种体系结构,前台是嵌入式系统主机,后台是Win NT/2000管理系统,在后台管理系统中应用关系数据库保存主机数据。在后台管理系统软件版本升级时,有必要升级相应版本的数据库,方便版本升级。现有的数据库升级是当后台管理系统软件版本升级安装后,重新创建数据库,所有与业务相关或者需要定制的数据表数据需要在后台管理系统客户端重新手工配置。由于与后台管理系统的软件版本相应的数据库不能随之升级,而是要重新创建数据库,因此原版本中配置的业务数据也随之丢失了,这给前台主机数据配置带来了很多不便。故现有技术存在以下缺点1.在业务数据表较多的情况下,重新配置数据需要耗费大量的人力;2.还原原版本的配置数据误配率高,某些数据表易漏配,从而增加了开发和测试人员问题定位的难度;3.重新配置数据所花费的时间成本长,不利于快速响应客户需求;4.做不到数据库随后台管理系统软件版本的无缝升级。
技术实现思路
本专利技术所要解决的技术问题在于提供一种应用于嵌入式通信系统中的,其能实现智能化和自动化升级,不需要人参与,能自动识别源版本和目的版本,实现后台管理系统的数据库随软件版本升级而平滑升级。为解决上述技术问题,本专利技术所采用的技术方案是提供一种在后台管理系统中实现数据库升级的系统,其包括版本识别子系统、版本升级子系统和描述/知识系统,其中所述版本识别子系统产生和维护软件现有各个版本数据库的描述/知识;所述版本升级子系统利用所述描述/知识对数据库进行升级;所述描述/知识系统由若干描述文件组成,是版本升级子系统的输入,版本识别子系统的输出。上述技术方案的进一步改进在于所述描述文件包括数据库描述文件、数据库版本描述文件、数据库版本识别文件、数据库表描述文件和数据库版本间升级SQL脚本文件。所述描述文件还包括预处理SQL脚本文件和后处理SQL脚本文件。为解决上述另一技术问题,本专利技术所采用的技术方案是提供一种在后台管理系统中实现数据库升级的方法,其包括以下步骤版本识别子系统产生和维护软件现有各个版本数据库的描述/知识;版本升级子系统利用上述描述/知识对数据库进行升级。上述技术方案的进一步改进在于所述版本识别子系统产生和维护软件现有各个版本数据库的描述/知识包括以下步骤a)版本识别子系统从数据库描述文件中,读取所有需要升级数据的数据库信息;b)版本识别子系统生成数据库版本描述文件;c)版本识别子系统生成数据库版本识别文件;e)版本识别子系统生成数据库版本间升级SQL脚本文件;f)版本识别子系统生成数据库表描述文件;g)版本识别子系统检查数据库版本描述文件中的版本间升级关系是否构成有向无环图,若构成有向无环图,则比较版本差异,输出详细报告,若不构成,则结束版本识别。所述步骤c)和e)之间还包括步骤d),即版本识别子系统判断数据库中的表是否存在约束,若存在约束,则版本识别子系统生成数据库版本的预处理SQL脚本文件和后处理SQL脚本文件,若不存在约束则直接执行步骤e)。上述技术方案的进一步改进在于所述版本升级子系统利用上述描述/知识对数据库进行升级包括以下步骤h)版本升级子系统从数据库描述文件中,读取所有需要升级数据的数据库信息;i)版本升级子系统从数据库版本描述文件中,读取数据库的所有版本信息;i)版本升级子系统根据数据库版本识别文件,读取数据库版本特征信息,根据版本特征信息识别数据库的源版本和目的版本;k)版本升级子系统从数据库版本描述文件中,读取数据库版本间的升级关系,分析得到从源版本到目的版本的最短升级路径;l)版本升级子系统沿着从源版本到目的版本的最短升级路径,执行版本间的升级SQL脚本文件,调整源版本数据库的表结构和数据;m)版本升级子系统从数据库表描述文件中,读取所有表的导入数据方式,根据导入数据方式,将各表的数据由源版本数据库导入目的版本数据库。所述步骤m)进一步包括步骤n),即如果该表存在约束,则在导入数据前执行该表的预处理SQL脚本文件,在导入数据后执行该表的后处理SQL脚本文件。步骤k)所述的分析从源版本到目的版本的最短升级路径采用求有向无环图中某源点到其余各顶点最短路径的算法。本专利技术的有益效果是由于本专利技术采用版本识别子系统、版本升级子系统和描述/知识系统结合实现在后台管理系统中的数据库升级,因此其能实现智能化和自动化升级,不需要人参与,能自动识别源版本和目的版本,实现后台管理系统的数据库随软件版本升级而平滑升级,该基于描述的数据库升级方法使得系统具有良好的可扩充性;另外,本专利技术能够集成到后管理模块软件安装盘中,提供升级安装选项,在安装后管理模块软件的同时升级数据,且数据库升级的绝大部分一致性正确性的检查工作由系统完成,从而减少开发/维护人员工作;再者,由于本专利技术的分析从源版本到目的版本的最短升级路径采用的是求有向无环图中某源点到其余各顶点最短路径的算法,因此在数据库升级过程中能确定从源版本到目的版本的升级路径和策略,当从后台管理系统软件的低版本升级到高版本时,它能寻找一条最短的升级路径对数据库进行升级。附图说明图1是本专利技术在后台管理系统中实现数据库升级的系统架构图。图2是图1所示系统的版本识别子系统工作示意图。图3是图1所示系统的版本升级子系统工作示意图。图4是本专利技术分析源版本到目的版本升级路径的算法所采用的有向无环图。具体实施例方式请参阅图1,本专利技术在后台管理系统中实现数据库升级的系统包括版本识别子系统、版本升级子系统和描述/知识系统,其中版本识别子系统产生和维护软件现有各个版本数据库的描述/知识;版本升级子系统利用上述描述/知识对数据库进行升级;描述/知识系统由若干描述文件组成,是版本升级子系统的输入,版本识别子系统的输出,描述文件包括数据库描述文件、数据库版本描述文件、数据库版本识别文件、预处理SQL脚本文件、后处理SQL脚本文件、数据库表描述文件和数据库版本间升级SQL脚本文件。其中1)数据库描述文件概述描述升级过程中所要升级的数据库的数据。整个版本升级系统就使用一个该数据库描述文件。2)数据库版本描述文件概述描述数据库的所有版本和版本间的升级关系。每个要升级的数据库有一个该数据库版本描述文件。3)数据库版本识别文件概述保存该版本的数据库信息,包含数据库中所有表信息,如表结构定义(必选,所有表)、字段含义(可选,主机业务表)、字段枚举值含义(可选,主机业务表),用于识别各个版本。数据库的每个版本有一个该数据库版本识别文件。4)预处理SQL脚本文件概述预处理SQL脚本文件分为数据库预处理SQL脚本文件,表预处理SQL脚本文件。每个版本每个数据库最多有一个数据库预处理SQL脚本文件,其在数据库导入数据前执行,任何需要在数据库导入数据前执行的特殊处理,都可以在该文件中写SQL脚本。每个版本每个数据库每个表最多有一个表预处理SQL脚本文件,其在导入该表数据前执行,任何需要在导入该表数据前执行的特殊处理,都可以在该文件中写SQL脚本。5)后处理SQL脚本文件概述后处理SQL脚本文件分为数据库后处理SQL脚本文件,表后处理SQL脚本文本文档来自技高网...

【技术保护点】
一种在后台管理系统中实现数据库升级的系统,其特征在于:其包括版本识别子系统、版本升级子系统和描述/知识系统,其中所述版本识别子系统产生和维护软件现有各个版本数据库的描述/知识;所述版本升级子系统利用所述描述/知识对数据库进行升级;所述描述/知识系统由若干描述文件组成,是版本升级子系统的输入,版本识别子系统的输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:梁柱添柏伟宁
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1