[发明专利]数据库升级方法、系统、设备及存储介质在审
申请号: | 201810989332.5 | 申请日: | 2018-08-28 |
公开(公告)号: | CN110865829A | 公开(公告)日: | 2020-03-06 |
发明(设计)人: | 赵宇轩 | 申请(专利权)人: | 北京京东金融科技控股有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 袁礼君;阚梓瑄 |
地址: | 100176 北京市北京经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 升级 方法 系统 设备 存储 介质 | ||
本发明提供了一种数据库升级方法、系统、设备及存储介质,所述方法包括接收目标版本数据库的第一升级代码和表结构信息;比较原版本数据库的表结构信息和目标版本数据库的表结构信息,得到数据库表结构差异信息;匹配所述第一升级代码和数据库表结构差异信息;如果匹配成功,则运行所述第一升级代码升级原版本数据库;如果匹配失败,根据所述数据库表结构差异信息升级原版本数据库。本发明在使用发布的升级代码进行数据库升级之前,首先进行语句判断,如果出错则直接采用数据库差异信息进行升级,避免了升级代码有误时引起升级异常,实现了数据库升级容错保护。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据库升级方法、系统、设备及存储介质。
背景技术
随着互联网技术的不断发展,数据库得到了越来越广泛的应用。其中,Sqlite是一种新型的数据库,当应用于安卓系统时,可以获得较快的处理速度。当前,在对安卓的Sqlite数据库升级时,可以通过删除原表创建新表的方法,也可以通过创建新表之后复制已有数据,再重命名新表的方式,还可以通过写数据库升级的方法。这些升级方法都需要在升级代码发布之前进行逻辑验证,并覆盖到过去版本跨版本升级的情况,确保升级方案的正确性。
然而,采用现有的数据库升级方法,只有发布前的逻辑验证,缺少发布后应对异常问题的方法。一旦发布了错误代码,在升级过程中将导致数据库使用异常,丢失数据,甚至应用崩溃。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种数据库升级方法、系统、设备及存储介质,在使用发布的升级代码进行数据库升级之前,首先进行语句判断,如果出错则直接采用数据库差异信息进行升级,避免了升级代码有误时引起升级异常,实现了数据库升级容错保护。
本发明实施例提供一种数据库升级方法,所述方法包括如下步骤:
S100:接收目标版本数据库的第一升级代码和表结构信息;
S200:比较原版本数据库的表结构信息和目标版本数据库的表结构信息,得到数据库表结构差异信息;
S300:匹配所述第一升级代码和数据库表结构差异信息,判断第一升级代码的语句是否能够实现将原版本数据库更新为目标版本数据库;
S400:如果是,则运行所述第一升级代码升级原版本数据库;
S500:否则,根据所述数据库表结构差异信息升级原版本数据库。
可选地,步骤S100中,所述接收目标版本数据库的第一升级代码和表结构信息,包括如下步骤:
接收目标版本数据库的第一升级代码和数据库配置文件;
从所述数据库配置文件中提取目标版本数据库的表结构信息。
可选地,所述表结构信息包括数据库中表的名称和表包括的列的名称;
所述数据库表结构差异信息包括新增表信息、删除表信息和修改表信息,其中:
所述新增表信息包括目标版本数据库相比于原版本数据库新增的表的表结构信息;
所述删除表信息包括目标版本数据库相比于原版本数据库删除的表的名称;
所述修改表信息包括分别处于原版本的数据库中的第一表和目标版本数据库中的第二表之间的表差异信息,所述第一表和所述第二表的名称相同且表结构信息不同。
可选地,步骤S300中,根据如下匹配规则匹配所述第一升级代码和数据库表结构差异信息:
G1:查找第一升级代码的语句中的新增表语句,判断新增表语句是否能实现所述新增表信息中表的增加,如果是,则匹配成功,否则匹配失败;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东金融科技控股有限公司,未经北京京东金融科技控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810989332.5/2.html,转载请声明来源钻瓜专利网。