一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf

上传人:e2 文档编号:6397981 上传时间:2019-06-06 格式:PDF 页数:12 大小:862.21KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510585070.2

申请日:

2015.09.15

公开号:

CN105224361A

公开日:

2016.01.06

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 9/445变更事项:发明人变更前:范伟 张聪变更后:范伟 张聪 范丛明 赵术开|||专利申请权的转移IPC(主分类):G06F 9/445登记生效日:20161230变更事项:申请人变更前权利人:华讯方舟智慧信息科技(深圳)有限公司变更后权利人:华讯方舟科技有限公司变更事项:地址变更前权利人:518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼变更后权利人:518000 广东省深圳市宝安区西乡宝田一路臣田工业区第37栋1楼及2楼靠西变更事项:申请人变更前权利人:华讯方舟科技有限公司|||著录事项变更IPC(主分类):G06F 9/445变更事项:申请人变更前:深圳市华讯方舟软件信息科技有限公司变更后:华讯方舟智慧信息科技(深圳)有限公司变更事项:地址变更前:518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼变更后:518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼变更事项:申请人变更前:华讯方舟科技有限公司变更后:华讯方舟科技有限公司|||著录事项变更IPC(主分类):G06F 9/445变更事项:申请人变更前:深圳市华讯方舟软件信息科技有限公司变更后:深圳市华讯方舟软件信息科技有限公司变更事项:地址变更前:518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼变更后:518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼变更事项:申请人变更前:深圳市华讯方舟科技有限公司变更后:华讯方舟科技有限公司|||实质审查的生效IPC(主分类):G06F 9/445申请日:20150915|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

深圳市华讯方舟软件信息科技有限公司; 深圳市华讯方舟科技有限公司

发明人:

范伟; 张聪

地址:

518000 广东省深圳市宝安区西乡街道西乡宝田一路臣田工业区第37栋3楼

优先权:

专利代理机构:

深圳中一专利商标事务所 44237

代理人:

张全文

PDF下载: PDF下载
内容摘要

本发明提供一种对sqlite3型嵌入式数据库进行升级的方法及系统,涉及嵌入式技术领域。该方法包括:在设备上完成升级应用软件的加载并重新启动设备;读取升级应用软件中目标数据库的版本号和设备内存中源数据库的版本号,判断目标数据库的版本号与源数据库的版本号是否一致;若不一致,则对源数据库进行备份,并调用升级应用软件内嵌的与目标数据库的版本号和源数据库的版本号相匹配的升级配置文件,根据升级配置文件对设备内存中的源数据库进行升级。本发明能够使大部分使用sqlite3型嵌入式数据库的设备均可以进行无损升级操作,最大程度的保护了源数据库中的数据,简化了升级步骤、缩短了升级时间,并且极大地方便了设备的维护,减少了维护人员的工作量。

权利要求书

权利要求书
1.  一种对sqlite3型嵌入式数据库进行升级的方法,其特征在于,包括:
在设备上完成升级应用软件的加载并重新启动设备;
读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。

2.  如权利要求1所述的对sqlite3型嵌入式数据库进行升级的方法,其特征在于,根据所述升级配置文件对所述设备内存中的源数据库进行升级具体包括:
获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。

3.  如权利要求2所述的对sqlite3型嵌入式数据库进行升级的方法,其特征在于,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。

4.  如权利要求3所述的对sqlite3型嵌入式数据库进行升级的方法,其特征在于,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。

5.  如权利要求4所述的对sqlite3型嵌入式数据库进行升级的方法,其特征在于,所述根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库具体包括:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
若所述升级目标为修改字段名称,则不进行处理;
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。

6.  一种对sqlite3型嵌入式数据库进行升级的系统,其特征在于,包括:
应用软件升级模块,用于在设备上完成升级应用软件的加载并重新启动设备;
判断模块,用于读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
数据库升级模块,用于若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。

7.  如权利要求6所述的对sqlite3型嵌入式数据库进行升级的系统,其特征 在于,所述数据库升级模块包括:
数据库结构逆向建立单元,用于获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
数据流获取单元,用于利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
新数据表创建单元,用于删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
数据流位偏移处理单元,用于将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。

8.  如权利要求7所述的对sqlite3型嵌入式数据库进行升级的系统,其特征在于,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。

9.  如权利要求8所述的对sqlite3型嵌入式数据库进行升级的系统,其特征在于,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。

10.  如权利要求9所述的对sqlite3型嵌入式数据库进行升级的系统,其特征在于,所述数据流位偏移处理单元具体用于:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字 段赋默认的数据;
若所述升级目标为修改字段名称,则不进行处理;
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。

说明书

说明书一种对sqlite3型嵌入式数据库进行升级的方法及系统
技术领域
本发明属于嵌入式技术领域,尤其涉及一种对sqlite3型嵌入式数据库进行升级的方法及系统。
背景技术
商业场合应用的无线管理器设备由于功能较多、配置复杂,经常一台无线管理设备需要配置几百甚至上千个AP的数据以及其他条目,而且在使用前需要进行大量的前期数据配置工作,为此现有技术中的无线管理器设备一般采用sqlite3嵌入式数据库。而对无线管理器设备进行后期维护,如新功能增加以及版本升级的时候,经常需要对无线管理器设备的数据库进行维护,例如:添加或删除数据库中的数据表、对数据表里某个字段进行修改或删除等,而现有的sqlite3嵌入式数据库在使用sqlite3命令的时候,因为sqlite3本身的功能缺失,无法通过命令来对数据库表字段进行删除和修改,这样无线管理器设备若需要升级设备版本,则必须重新更换整个数据库导致设备必须得重新配置大量数据,这样会使设备升级过程繁琐、耗时。
发明内容
本发明实施例的目的在于提供一种对sqlite3型嵌入式数据库进行升级的方法及系统,旨在解决上述无线管理器设备若需要升级设备版本,则必须重新更换整个数据库导致设备必须得重新配置大量数据,这样会使设备升级过程繁琐、耗时的问题。
本发明实施例是这样实现的,一种对sqlite3型嵌入式数据库进行升级的方法,包括:
在设备上完成升级应用软件的加载并重新启动设备;
读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,根据所述升级配置文件对所述设备内存中的源数据库进行升级具体包括:
获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库具体包括:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
若所述升级目标为修改字段名称,则不进行处理;
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
本发明实施例的另一目的在于提供一种对sqlite3型嵌入式数据库进行升级的系统,包括:
应用软件升级模块,用于在设备上完成升级应用软件的加载并重新启动设备;
判断模块,用于读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
数据库升级模块,用于若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述数据库升级模块包括:
数据库结构逆向建立单元,用于获取目标数据库的数据库结构,根据所述 目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
数据流获取单元,用于利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
新数据表创建单元,用于删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
数据流位偏移处理单元,用于将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述数据流位偏移处理单元具体用于:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
若所述升级目标为修改字段名称,则不进行处理;
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位 偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
实施本发明实施例提供的一种对sqlite3型嵌入式数据库进行升级的方法及系统具有以下有益效果:
本发明实施例由于首先在设备上完成升级应用软件的加载并重新启动设备;然后读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,最后根据所述升级配置文件对所述设备内存中的所述源数据库进行升级,从而有效的完善了现有sqlite3嵌入式数据库的不足,补充了sqlite3嵌入式数据库缺失的功能,能够使大部分使用sqlite3型嵌入式数据库的设备均可以进行无损升级操作,最大程度的保护了源数据库中的数据,简化了升级步骤、缩短了升级时间,并且极大地方便了设备的维护,减少了维护人员的工作量。
附图说明
图1是本发明实施例提供的对sqlite3型嵌入式数据库进行升级的方法的具体实现流程图;
图2是本发明实施例中根据升级配置文件对设备内存中的源数据库进行升级的具体实现流程图;
图3是本发明实施例提供的对sqlite3型嵌入式数据库进行升级的系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的对sqlite3型嵌入式数据库进行升级的方法的具体实现流程。参见图1所示,本发明实施例提供的一种对sqlite3型嵌入式数据库进行升级的方法,包括:
在S101中,在设备上完成升级应用软件的加载并重新启动设备。
在本发明实施例中,对于基于嵌入式应用软件的设备而言,一般采用sqlite3型嵌入式数据库来存储配置和状态信息。在对设备上的应用软件进行升级时,由于应用软件升级后使用的数据库可能与升级前使用的数据库不同,因此在加载完升级程序后还需要对设备内存中的数据库进行升级处理。进一步的,所述设备包括但不限于无线管理器设备,例如:还可以路由设备或者任何使用sqlite型数据库的设备。
在S102中,读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致。
在本发明实施例中,升级后的应用软件自带有目标数据库的版本号,设备在完成升级应用软件的加载并重新启动设备的过程中会自动读取升级后的应用软件自带的目标版本号和设备内存中源数据库的版本号。
在S103中,若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
在本发明实施例中,一个应用软件对应有多个升级配置文件,升级配置文件是根据升级后的应用软件的目标数据库的版本号编写的,例如:若升级后的应用软件的目标数据库版本号为第3版,则与所述应用软件一起打包的升级配 置文件包括:从版本1升级到版本3的升级配置文件和从版本2升级到版本3的升级配置文件。具体的,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。且所述升级配置文件以xml文件格式的形式内嵌于所述升级应用软件中,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
作为一具体实现示例,图2示出了步骤S103中根据所述升级配置文件对所述设备内存中的源数据库进行升级的具体实现过程,参见图2所示,该过程包括:
在S201中,获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构。
在本发明实施例中,由于提取源数据库中的表数据时,必须使用对应的旧数据库结构进行内存空间分配和数据提取,而此时升级后的应用软件中的数据库结构为目标数据库的新数据库结构,所以在升级时,需要根据新数据库结构体和对应的升级配置文件逆向建立源数据库的旧数据库结构,其中升级配置文件中记录有新数据库结构和旧数据库结构的差异信息。
在S202中,利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流。在本发明实施例中,采用malloc()函数进行内存空间分配。
在S203中,删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表。
在S204中,将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
其中,所述根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库具体包括:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移。
在本发明实施例中,若查找出来的不止一条目标位信息,则需要对查找到的每条目标位信息都进行处理,删除查找到的所有对应字段位置存储的信息,并且重新进行数据位偏移。
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据。同样,在本发明实施例中,若查找出多个添加位置,则需要对查找到的多个添加位置中的每一个添加位置都进行处理。
若所述升级目标为修改字段名称,则不进行处理。
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值。作为一具体实现示例:若所述升级目标为将字段类型由int改为char,则删除原来int型字段所占的4字节长度,然后添加char型字段对应的默认值,进行数据流位偏移。
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
在本发明实施例中,所述修改字段长度专指char型字符串。例如:若所述升级目标为将char型字段长度由temp[20]改为temp[10],提取出的旧数据原来里边的数据流已经有大于10个字节的内容,则删除该数据,并添加进10字节的默认值,若旧数据小于等于10个字节,则不修改。反之,若所述升级目标为将char型字段长度由Temp[10]改为temp[20],则不用修改。
此外,需要说明的,由于本发明实施例中在对数据库进行升级前对源数据库进行了备份,所以在数据库的升级过程中一旦出现错误即可利用备份的源数据库逆向升级到旧版本的数据库。
以上可以看出,本发明实施例提供一种对sqlite3型嵌入式数据库进行升级的方法,能够实现通过对数据库中现有的数据的提取拆分,在无损的前提下进行数据库的升级,有效的完善了现有sqlite3嵌入式数据库的不足,补充了sqlite3嵌入式数据库缺失的功能,能够使大部分使用sqlite3型嵌入式数据库的设备均可以进行无损升级操作,最大程度的保护了源数据库中的数据,简化了升级步骤、缩短了升级时间,并且极大地方便了设备的维护,减少了维护人员的工作量。
图3示出了本发明实施例提供的对sqlite3型嵌入式数据库进行升级的系统的结构框图,该系统位于本发明实施例所述的设备中,用于运行上述图1~图2所示实施例提供的方法。为了便于说明仅仅示出了与本实施例相关的部分。
参见图3所示,本发明实施例提供一种对sqlite3型嵌入式数据库进行升级的系统,包括:
应用软件升级模块1,用于在设备上完成升级应用软件的加载并重新启动设备;
判断模块2,用于读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
数据库升级模块3,用于若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
可选的,所述数据库升级模块3包括:
数据库结构逆向建立单元31,用于获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
数据流获取单元32,用于利用所述源数据库的数据库结构进行内存空间分 配,以读取所述源数据库中旧数据表的数据流;
新数据表创建单元33,用于删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
数据流位偏移处理单元34,用于将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
可选的,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
可选的,所述升级配置文件以xml文件格式的形式内嵌于所述升级应用软件中,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
可选的,所述数据流位偏移处理单元34具体用于:
若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
若所述升级目标为修改字段名称,则不进行处理;
若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
需要说明的是,本发明实施例提供的上述系统中各个模块,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
因此,本发明实施例提供的一种对sqlite3型嵌入式数据库进行升级的系统同样能够实现通过对数据库中现有的数据的提取拆分,在无损的前提下进行数据库的升级,有效的完善了现有sqlite3嵌入式数据库的不足,补充了sqlite3嵌入式数据库缺失的功能,能够使大部分使用sqlite3型嵌入式数据库的设备均可以进行无损升级操作,最大程度的保护了源数据库中的数据,简化了升级步骤、缩短了升级时间,并且极大地方便了设备的维护,减少了维护人员的工作量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf_第1页
第1页 / 共12页
一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf_第2页
第2页 / 共12页
一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种对SQLITE3型嵌入式数据库进行升级的方法及系统.pdf(12页珍藏版)》请在专利查询网上搜索。

本发明提供一种对sqlite3型嵌入式数据库进行升级的方法及系统,涉及嵌入式技术领域。该方法包括:在设备上完成升级应用软件的加载并重新启动设备;读取升级应用软件中目标数据库的版本号和设备内存中源数据库的版本号,判断目标数据库的版本号与源数据库的版本号是否一致;若不一致,则对源数据库进行备份,并调用升级应用软件内嵌的与目标数据库的版本号和源数据库的版本号相匹配的升级配置文件,根据升级配置文件对设备内。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1