数据库更新系统、方法及相应计算机设备和存储介质技术方案

技术编号:35935258 阅读:16 留言:0更新日期:2022-12-14 10:22
本申请公开了数据库更新系统、方法及相应计算机设备和存储介质,其中所述系统用于:配置新旧版本数据库的连接信息;读取数据库变更规则文件中的记录;读取新旧版本数据库的所有表及相应字段信息;读取变更规则数据并根据其中的表名获取新旧版本数据库的相应表及字段信息,根据相应变更规则数据以及获取的相应表及字段信息整理表升级脚本;针对不在变更规则数据中的表,确定新版本数据库中多出的表并整理表新增脚本并保存;读取新旧版本数据库的所有对象的名称和创建语句并将新版本数据库中多出的对象的创建语句保存为对象升级脚本;执行整理/保存的脚本中的一个或多个从而实现旧版本数据库的更新。本发明专利技术能提高数据库更新的准确性和效率。准确性和效率。准确性和效率。

【技术实现步骤摘要】
数据库更新系统、方法及相应计算机设备和存储介质


[0001]本申请涉及电数字数据处理领域,尤其涉及数据库更新系统。本申请还涉及数据库更新方法及相应计算机设备和计算机可读存储介质。

技术介绍

[0002]面向企业的软件产品,尤其是像医疗服务运营管理系统这样业务相关性强的大型软件产品,总是需要频繁开发新功能以应对越来越多且越来越复杂的客户需求的,软件产品也需要频繁发布新的版本。而不同的客户使用的版本不一样,根据需求选择的要升级的新版本也不一样,从而导致客户项目上的升级容易遇到一些问题。
[0003]另一方面,面向企业的软件产品的数据库里往往存储着大量的业务数据,业务表的数量也非常多,导致这类软件产品的数据库的升级不能像面向个人的软件产品一样,只提取少量的用户配置和用户数据转储,其他数据全量覆盖即可。面向企业的软件产品的版本升级中往往包含大量的数据库变更,不同版本的数据库内容差异大。而数据库更新的问题也是这类软件产品的升级过程中最常遇到的问题之一。
[0004]目前针对数据库更新的主要方式是在开发的过程中按照一定的规范整理升级脚本。但是随着软件产品的功能越来越多,难免遇到以下两个问题:
[0005]‑
参与开发的人员越来越多,升级脚本也越来越多,升级脚本的质量缺乏有效的监督,升级脚本的管理工作也越来越麻烦;
[0006]‑
每次在客户项目上做版本升级时,实施人员都要取大量的升级脚本在客户的数据库上执行,取脚本和执行脚本的过程里也难免会有疏漏。
[0007]因此,需要提供一种面向企业的软件产品的版本升级迭代的数据库自动更新工具。

技术实现思路

[0008]本专利技术提供一种数据库更新系统、方法及相应计算机设备和存储介质,其能自动整理升级脚本从而提高升级脚本的质量以及数据库更新的准确性和效率。
[0009]在本专利技术的第一方面,提供一种数据库更新系统,包括:
[0010]连接信息配置模块,用于配置旧版本数据库和新版本数据库的连接信息;
[0011]记录读取模块,用于逐行读取数据库变更规则文件中的记录并存入中间数据库,每一记录包括指明表名、是否更新表、是否合并表字段、是否合并表数据的变更规则数据;
[0012]表读取模块,用于读取新、旧版本数据库的所有表及相应字段信息;
[0013]表升级脚本模块,用于从中间数据库逐条读取变更规则数据,根据相应变更规则数据中的表名获取新、旧版本数据库的相应表及字段信息,根据相应变更规则数据以及获取的相应表及字段信息整理表升级脚本;
[0014]表新增脚本模块,用于针对不在变更规则数据中的表,确定新版本数据库中多出的表并整理按照新版本数据库创建表、按照新版本数据库插入数据的表新增脚本并保存;
[0015]对象脚本模块,用于读取新、旧版本数据库的所有对象的名称和创建语句并将新版本数据库中多出的对象的创建语句保存为对象升级脚本,其中所述对象包括视图、索引、函数、存储过程、触发器和/或序列;
[0016]脚本批量执行模块,用于执行所述表升级脚本、所述表新增脚本和所述对象升级脚本中的一个或多个从而实现旧版本数据库的更新。
[0017]在本专利技术的第二方面,提供一种数据库更新方法,包括:
[0018]配置旧版本数据库和新版本数据库的连接信息;
[0019]逐行读取数据库变更规则文件中的记录并存入中间数据库,每一记录包括指明表名、是否更新表、是否合并表字段、是否合并表数据的变更规则数据;
[0020]读取新、旧版本数据库的所有表及相应字段信息;
[0021]从中间数据库逐条读取变更规则数据,根据相应变更规则数据中的表名获取新、旧版本数据库的相应表及字段信息,根据相应变更规则数据以及获取的相应表及字段信息整理表升级脚本;
[0022]针对不在变更规则数据中的表,确定新版本数据库中多出的表并整理按照新版本数据库创建表、按照新版本数据库插入数据的表新增脚本并保存;
[0023]读取新、旧版本数据库的所有对象的名称和创建语句并将新版本数据库中多出的对象的创建语句保存为对象升级脚本,其中所述对象包括视图、索引、函数、存储过程、触发器和/或序列;
[0024]执行所述表升级脚本、所述表新增脚本和所述对象升级脚本中的一个或多个从而实现旧版本数据库的更新。
[0025]在本专利技术的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据本专利技术的第一方面的系统的功能或者实现根据本专利技术的第二方面的方法的步骤。
[0026]根据本专利技术的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本专利技术的第一方面的系统的功能或者实现根据本专利技术的第二方面的方法的步骤。
[0027]按照本专利技术,通过配置旧版本数据库和新版本数据库的连接信息,逐行读取数据库变更规则文件中的记录并存入中间数据库,每一记录包括指明表名、是否更新表、是否合并表字段、是否合并表数据的变更规则数据,读取新、旧版本数据库的所有表及相应字段信息,从中间数据库逐条读取变更规则数据,根据相应变更规则数据中的表名获取新、旧版本数据库的相应表及字段信息,根据相应变更规则数据以及获取的相应表及字段信息整理表升级脚本,针对不在变更规则数据中的表,确定新版本数据库中多出的表并整理按照新版本数据库创建表、按照新版本数据库插入数据的表新增脚本并保存,读取新、旧版本数据库的所有对象的名称和创建语句并将新版本数据库中多出的对象的创建语句保存为对象升级脚本,然后执行所述表升级脚本、所述表新增脚本和所述对象升级脚本中的一个或多个,能够实现数据库升级脚本的自动整理,提高升级脚本的质量并减少管理升级脚本的工作,进而可提高数据库更新的准确性和效率,同时降低计算机人员的工作负荷并节约人力成本。
[0028]结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其它特点和优点将变得更
加清楚。
附图说明
[0029]图1为根据本专利技术系统的一实施例的框图;
[0030]图2为根据本专利技术方法的一实施例的流程图。
[0031]为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本专利技术所必要的细节,而省略其他细节。
具体实施方式
[0032]下面参照附图对本专利技术的实施方式和实施例进行详细说明。
[0033]通过下面给出的详细描述,本专利技术的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本专利技术优选实施例的同时,它们仅为说明目的给出。
[0034]图1示出了根据本专利技术的数据库更新系统的一优选实施例的框图。
[0035]连接信息配置模块102用于配置旧版本数据库和新版本数据库的连接信息,包括但不限于:数据库类型;旧版本数据库的URL、用户名和密码;新版本数据库的URL、用户名和密码等。在配置这些连接信息之后,还可测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库更新系统,其特征在于,所述系统包括:连接信息配置模块,用于配置旧版本数据库和新版本数据库的连接信息;记录读取模块,用于逐行读取数据库变更规则文件中的记录并存入中间数据库,每一记录包括指明表名、是否更新表、是否合并表字段、是否合并表数据的变更规则数据;表读取模块,用于读取新、旧版本数据库的所有表及相应字段信息;表升级脚本模块,用于从中间数据库逐条读取变更规则数据,根据相应变更规则数据中的表名获取新、旧版本数据库的相应表及字段信息,根据相应变更规则数据以及获取的相应表及字段信息整理表升级脚本;表新增脚本模块,用于针对不在变更规则数据中的表,确定新版本数据库中多出的表并整理按照新版本数据库创建表、按照新版本数据库插入数据的表新增脚本并保存;对象脚本模块,用于读取新、旧版本数据库的所有对象的名称和创建语句并将新版本数据库中多出的对象的创建语句保存为对象升级脚本,其中所述对象包括视图、索引、函数、存储过程、触发器和/或序列;脚本批量执行模块,用于执行所述表升级脚本、所述表新增脚本和所述对象升级脚本中的一个或多个从而实现旧版本数据库的更新。2.根据权利要求1所述的系统,其特征在于,所述系统还包括:校验模块,用于根据预设规则校验每一记录的变更规则数据,响应于校验不通过,返回失败信息。3.根据权利要求1所述的系统,其特征在于,所述系统还包括:记录模块,用于提供用于记录变更规则数据的变更规则模板。4.根据权利要求1所述的系统,其特征在于,所述表升级脚本模块用于:响应于相应变更规则数据指明要更新表但不合并表字段,整理删除表、按照新版本数据库创建表、按照新版本数据库插入数据的脚本并保存。5.根据权利要求1所述的系统,其特征在于,所述表升级脚本模块用于:响应于相应变更规则数据指明要更新表、要合并表字段但不合并表数据,确定新版本数据库相应表多出的字段和长度变长的字段,整理插入新字段、修改字段长度、清空表、按照新版本数据库插入数据...

【专利技术属性】
技术研发人员:张志昌李庆超张亚平
申请(专利权)人:望海康信北京科技股份公司
类型:发明
国别省市:

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

1