本发明专利技术公开了一种数据库系统及其升级的方法,包括:数据库系统创建脚本模块升级的信息;数据库系统根据脚本模块的类别和所述脚本模块升级的信息,对相应的脚本模块进行升级。应用本发明专利技术,通过代码段起始的版本信息来自适应地执行需要的脚本,降低开发和维护的难度,提高了效率。
【技术实现步骤摘要】
本专利技术涉及数据库领域,尤其涉及。
技术介绍
在项目开发实践中,经常需要根据应用要求,开发并维护多个代码分支。 对于某一组件或功能,可能只需要存在于特定的分支之中,而且,组件或功 能在不同的分支之中的支持程度可能也不一样。按照一般的做法,对于同一 功能组件,需要按照需求合入特定的分支。事实上,这样做是比较繁瑣的,首先,需要耗费开发人员大量的开发时间;同时由于代码分散,很难做到统一管理和检查,需要开发人员对各个分 支的代码都比较熟悉,增加了代码维护的复杂性。因此当前需要一种代码的开发和版本安装的技术方案,统一维护一套代 码,通过在代码中嵌入代码段归属的版本信息来决定安装哪些功能组件。
技术实现思路
本专利技术所要解决的技术问题是提供,解 决了数据库系统可以自动升级的问题,提高了效率。为了解决上述问题,本专利技术提供了一种数据库系统升级的方法,包括数据库系统创建脚本模块升级的信息;所述数据库系统根据脚本模块的类别和所述脚本模块升级的信息,对相 应的脚本模块进行升级。进一步地,上述方法还可包括,所述脚本模块的类别包括每次都执行 的脚本模块、在特定版本基础上执行的脚本模块、只执行一次的脚本模块和 在特定版本间执行的脚本模块。5进一步地,上述方法还可包括,所述数据库系统创建脚本模块升级的信 息,包括所述数据库系统建立当前版本表、功能脚本归属版本表、唯——次升级 版本表,以及所述数据库系统建立脚本模块的历史版本表。进一步地,上述方法还可包括,所述当前版本表用于描述当前升级的 脚本模块的版本信息,包括大版本号Version和小版本号Subversion;其中, 所述大版本号用于区分不同的脚本模块的代码分支,所述小版本号用于描述 所述代码分支内的历史版本;所述功能脚本归属版本表用于描述在对应的版本中执行的脚本模块的 信息,针对部分的创建脚本模块、部分的初始化脚本模块和部分的更新脚本 模块;其中,每个脚本模块都需要在该表中增加一条记录,定义该脚本模块 起始的版本号和子版本号;所述功能脚本归属版本表包括Verldx、 SinceVer 和SinceSubVer,其中,Verldx用于唯一标识该脚本模块;SinceVer用于标 识脚本模块起始的版本号;SinceSubVer用于标识脚本模块起始的子版本号;所述唯——次升级版本表用于描述只需要执行一次的脚本模块的信 息,该表中记录其执行状态,主要针对部分的更新脚本模块和部分的初始化 脚本才莫块;其中,所述唯——次升级版本表包括;Execldx和Isupdate,所 述Execldx用于唯一标识该脚本段,所述Isupdate字l殳初始化为0;所述历史版本表用于记录脚本模块历次升级写入的版本号,每次执行 升级脚本模块时在该表中插入一条记录,存储升级脚本模块的版本号和升级 日期,后续升级时依据读取到的历史版本信息来决定执行对应的脚本模块; 所述历史版本表包括VerHistory和SubVerHistory,所述VerHistory用于描 述安装时的Version,所述SubVerHistory用于描述安装时的SubVersion。进一步地,上述方法还可包括,所述数据库系统根据脚本模块的类别和 所述脚本模块升级的信息,对相应的脚本模块进行升级,包括所述数据库系统根据脚本模块的类别,判断该脚本模块是所述每次都执 行的脚本模块,则根据所述脚本模块升级的信息,对该脚本模块进行升级。进一步地,上述方法还可包括,所述数据库系统^4居脚本^^莫块的类别和所述脚本模块升级的信息,对相应的脚本模块进行升级,包括所述数据库系统根据脚本模块的类别,判断该脚本模块是所述在特定版 本基础上执行的脚本模块,则对所述脚本模块升级的信息中当前版本表和功能脚本归属版本表进行比较,判断 SinceVer〉Version 或 (SinceVer==Version)&&( SinceSubVer>=SubVersion)时,则对该脚本才莫块进 行升级。进一步地,上述方法还可包括,所述数据库系统根据脚本模块的类别和 所述脚本模块升级的信息,对相应的脚本模块进行升级,包括所述数据库系统根据脚本模块的类别,判断该脚本模块是所述只执行一 次的脚本模块,则检索所述脚本模块升级的信息中所述唯——次升级版本 表,判断该唯——次升级版本表存在相应记录且所述Isupdate字段为0,则 对该脚本模块进行升级,升级完成后将该Isupdate字段置为1。进一步地,上述方法还可包括,所述数据库系统根据脚本模块的类别和 所述脚本模块升级的信息,对相应的脚本模块进行升级,包括所述数据库系统根据脚本模块的类别,判断该脚本模块是所述在特定版 本间执行的脚本模块,则根据所述脚本模块升级的信息中所述当前版本表和 所述历史片反本表,判断Version与Verliistory, 以及Subversion与 SubVerHistory相比满足预定义条件时,则对该脚本模块进行升级。进一步地,上述方法还可包括,所述数据库系统在升级完成后,还包括 所述数据库系统更新脚本模块升级的信息。本专利技术还提供了一种数据库系统,包括创建单元和升级单元,其中,所述创建单元,用于创建脚本模块升级的信息,并发送给所述升级单元;所述升级单元,用于接收所述创建单元发送的所述脚本模块升级的信 息,根据脚本模块的类别和所述脚本模块升级的信息,对相应的脚本模块进 行升级。与现有技术相比,应用本专利技术,通过代码段起始的版本信息来自适应地 执行需要的脚本,降低开发和维护的难度,提高了效率。附图说明图1为本专利技术的数据库系统升级的方法的流程图; 图2为本专利技术的具体实例中脚本模块编辑阶段的流程图; 图3为本专利技术的具体实例中脚本模块版本安装阶段的流程图; 图4为本专利技术的数据库系统的结构示意图。具体实施例方式下面结合附图和具体实施方式对本专利技术作进一步说明。 数据库的功能脚本从逻辑上主要包括三大部分一、 创建脚本包括创建数据库,创建数据表,创建存储过程和创建 函数;二、 初始化脚本即初始化数据表的特定记录;三、 更新脚本即对已有数据进行更新操作。如图1所示,本专利技术的数据库系统升级的方法,包括 10、数据库系统创建脚本模块升级的信息; 数据库系统创建脚本模块升级的信息,包括数据库系统建立当前版本表,描述脚本模块需要升级到的版本。需要在 安装程序中进行修改。当前版本表(CurVer):描述当前升级的脚本模块的版本信息;包括大 版本号Version和小版本号SubVersion。其中,所述大版本号Version可用 于区分不同的脚本模块的代码分支,所述小版本号Subversion可用于描述 所述代码分支内的历史版本安装程序根据当前版本表作为比较依据。数据库系统建立功能脚本归属版本表,描述在对应的版本中执行的脚本 模块的信息。功能脚本归属版本表(CodeVer) : ( Verldx+SinceVer+SinceSubVer ) 描述脚本模块应该在哪些版本下执行。针对部分的创建脚本模块、部分的初始化脚本模块和部分的更新脚本模块;其中,每脚本模块都需要在该表中增加一条记录,定义该脚本模块起始的版本号和子版本号。其中,Verldx用于唯一标识该脚本模块;SinceVer用于标识脚本模块起始的版本号本文档来自技高网...
【技术保护点】
一种数据库系统升级的方法,其特征在于,包括: 数据库系统创建脚本模块升级的信息; 所述数据库系统根据脚本模块的类别和所述脚本模块升级的信息,对相应的脚本模块进行升级。
【技术特征摘要】
1、一种数据库系统升级的方法,其特征在于,包括数据库系统创建脚本模块升级的信息;所述数据库系统根据脚本模块的类别和所述脚本模块升级的信息,对相应的脚本模块进行升级。2、 如权利要求l所述的方法,其特征在于, 所述脚本模块的类别包括每次都执行的脚本模块、在特定版本基础上 执行的脚本模块、只执行一次的脚本模块和在特定版本间执行的脚本模块。3、 如权利要求l所述的方法,其特征在于,所述数据库系统创建脚本模块升级的信息,包括所述数据库系统建立当前版本表、功能脚本归属版本表、唯——次升级 版本表,以及所述数据库系统建立脚本模块的历史版本表。4、 如权利要求3所述的方法,其特征在于,所述当前版本表用于描述当前升级的脚本模块的版本信息,包括大版 本号Version和小版本号Subversion;其中,所述大版本号用于区分不同的 脚本模块的代码分支,所述小版本号用于描述所述代码分支内的历史版本;所述功能脚本归属版本表用于描述在对应的版本中执行的脚本模块的 信息,针对部分的创建脚本模块、部分的初始化脚本模块和部分的更新脚本 模块;其中,每个脚本模块都需要在该表中增加一条记录,定义该脚本模块 起始的版本号和子版本号;所述功能脚本归属版本表包括Verldx、 SinceVer 和SinceSubVer,其中,Verldx用于唯一标识该脚本才莫块;SinceVer用于标 识脚本模块起始的版本号;SinceSubVer用于标识脚本冲莫块起始的子版本号;所述唯——次升级版本表用于描述只需要执行一次的脚本模块的信 息,该表中记录其执行状态,主要针对部分的更新脚本模块和部分的初始化 脚本才莫块;其中,所述唯——次升级版本表包括;Execldx和Isupdate,所 述Execldx用于唯一标识该脚本段,所述Isupdate字段初始化为0;所述历史版本表用于记录脚本模块历次升级写入的版本号,每次执行 升级脚本模块时在该表中插入一条记录,存储升级脚本模块的版本号和升级 日期,后续升级时依据读取到的历史版本信息来决定执行对应的脚本模块; 所述历史版本表包括VerHistory和SubVerHistory,所述VerHistory用于描 述安装时的Version,所述SubVerHistory用于描述安装时的SubVersion。5、 如权利要求2或4所述的...
【专利技术属性】
技术研发人员:刘洋,杨志,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。