一种对sqlite3型嵌入式数据库进行升级的方法及系统的制作方法

文档序号:9471198阅读:327来源:国知局
一种对sqlite3型嵌入式数据库进行升级的方法及系统的制作方法
【技术领域】
[0001]本发明属于嵌入式技术领域,尤其涉及一种对sqlite3型嵌入式数据库进行升级的方法及系统。
【背景技术】
[0002]商业场合应用的无线管理器设备由于功能较多、配置复杂,经常一台无线管理设备需要配置几百甚至上千个AP的数据以及其他条目,而且在使用前需要进行大量的前期数据配置工作,为此现有技术中的无线管理器设备一般采用sqlite3嵌入式数据库。而对无线管理器设备进行后期维护,如新功能增加以及版本升级的时候,经常需要对无线管理器设备的数据库进行维护,例如:添加或删除数据库中的数据表、对数据表里某个字段进行修改或删除等,而现有的sqlite3嵌入式数据库在使用sqlite3命令的时候,因为sqlite3本身的功能缺失,无法通过命令来对数据库表字段进行删除和修改,这样无线管理器设备若需要升级设备版本,则必须重新更换整个数据库导致设备必须得重新配置大量数据,这样会使设备升级过程繁琐、耗时。

【发明内容】

[0003]本发明实施例的目的在于提供一种对sqlite3型嵌入式数据库进行升级的方法及系统,旨在解决上述无线管理器设备若需要升级设备版本,则必须重新更换整个数据库导致设备必须得重新配置大量数据,这样会使设备升级过程繁琐、耗时的问题。
[0004]本发明实施例是这样实现的,一种对sqlite3型嵌入式数据库进行升级的方法,包括:
[0005]在设备上完成升级应用软件的加载并重新启动设备;
[0006]读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
[0007]若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
[0008]在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,根据所述升级配置文件对所述设备内存中的源数据库进行升级具体包括:
[0009]获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
[0010]利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
[0011]删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
[0012]将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
[0013]在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
[0014]在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
[0015]在本发明是实施例所述的对sqlite3型嵌入式数据库进行升级的方法中,所述根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库具体包括:
[0016]若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
[0017]若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
[0018]若所述升级目标为修改字段名称,则不进行处理;
[0019]若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
[0020]若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
[0021]本发明实施例的另一目的在于提供一种对sqlite3型嵌入式数据库进行升级的系统,包括:
[0022]应用软件升级模块,用于在设备上完成升级应用软件的加载并重新启动设备;
[0023]判断模块,用于读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;
[0024]数据库升级模块,用于若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,根据所述升级配置文件对所述设备内存中的所述源数据库进行升级。
[0025]在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述数据库升级模块包括:
[0026]数据库结构逆向建立单元,用于获取目标数据库的数据库结构,根据所述目标数据库的数据库结构和所述升级配置文件逆向建立所述源数据库的数据库结构;
[0027]数据流获取单元,用于利用所述源数据库的数据库结构进行内存空间分配,以读取所述源数据库中旧数据表的数据流;
[0028]新数据表创建单元,用于删除所述旧数据表,并利用所述目标数据库的数据库结构创建新数据表;
[0029]数据流位偏移处理单元,用于将所述数据流恢复到所述新数据表中,并根据所述升级配置文件对所述新数据表中数据流的位偏移进行处理,以生成目标数据库。
[0030]在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述升级配置文件包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
[0031]在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述升级配置文件以xml文件格式的形式与所述升级应用软件打包在一起,且所述升级配置文件中的每个升级目标作为一个单元以链表的形式存储,以便在数据库升级过程中根据所述链表顺序执行所述升级配置文件中的升级目标。
[0032]在本发明实施例所述的对sqlite3型嵌入式数据库进行升级的系统中,所述数据流位偏移处理单元具体用于:
[0033]若所述升级目标为删除字段,则对所述数据流按照位进行查找以获取待删除字段存储的目标位,删除所述目标位处存储的信息,并重新进行数据位偏移;
[0034]若所述升级目标为添加字段,则对所述数据流按照位进行查找以获取待添加字段的添加位置,在所述添加位置处添加对应的字段长度,并给新添加的字段赋默认的数据;
[0035]若所述升级目标为修改字段名称,则不进行处理;
[0036]若所述升级目标为修改字段类型,则计算出待修改字段位置处数据流的位偏移量,并删除所述待修改字段位置处的数据流,然后进行字段添加,并计算出新添加字段位置处数据流的位偏移量,对两个位偏移量进行差值计算,以进行位偏移,并在新添加字段的位置处写入默认值;
[0037]若所述升级目标为修改字段长度,则根据待改动长度进行数据流的位偏移,并写入默认值。
[0038]实施本发明实施例提供的一种对sqlite3型嵌入式数据库进行升级的方法及系统具有以下有益效果:
[0039]本发明实施例由于首先在设备上完成升级应用软件的加载并重新启动设备;然后读取所述升级应用软件中目标数据库的版本号和所述设备内存中源数据库的版本号,判断所述目标数据库的版本号与所述源数据库的版本号是否一致;若不一致,则对所述源数据库进行备份,并调用所述升级应用软件内嵌的与所述目标数据库的版本号和所述源数据库的版本号相匹配的升级配置文件,最后根据所述升级配置文件对所述设备内存中的所述源数据库进行升级,从而有效的完善了现有sqlite3嵌入式数据库的不足,补充了 sqlite3嵌入式数据库缺失的功能,能够使大部分使用sqlite3型嵌入式数据库的设备均可以进行无损升级操作,最大程度的保护了源数据库中的数据,简化了升级步骤、缩短了升级时间,并且极大地方便了设备的维护,减少了维护人员的工作量。
【附图说明】
[0040]图1是本发明实施例提供的对sqlite3型嵌入式数据库进行升级的方法的具体实现流程图;
[0041]图2是本发明实
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1