一种SQLITE数据库升级方法、装置、终端及系统与流程

    专利2022-07-08  70


    本发明涉及数据库升级技术领域,具体涉及一种sqlite数据库升级方法、装置、终端及系统。



    背景技术:

    随着终端系统应用的普及性,越来越多的客户端软件投入使用。客户端软件需要在数据库的支持下运行,数据库为客户端软件提供数据支持。随着用户需求的不断改进,致使客户端软件功能的不断增加及版本的升级。随着软件功能的增加,此时数据库必定需要进行更新,才能为客户端软件提供数据支持。

    现有客户端软件大多使用sqlite数据库,在客户端软件使用sqlite数据库进行软件运行时,往往会需要进行软件升级更新。但客户端软件在本地已存在的sqlite数据库不会进行差异处理,也就是sqlite数据库并不会升级更新。此种情况将会导致数据库和软件版本之间不兼容,由于数据库版本和软件版本不同,导致客户端软件无法正常使用。



    技术实现要素:

    有鉴于此,本发明的目的在于克服现有技术的不足,提供一种sqlite数据库升级方法、装置、终端及系统。

    为实现以上目的,本发明采用如下技术方案:

    一种sqlite数据库升级方法,包括:

    获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;

    判断所述数据库版本信息和所述软件版本信息是否匹配;

    若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。

    可选的,还包括:

    接收用户在所述客户端软件上的操作数据;

    根据所述操作数据判断所述客户端软件是否处于正常运行状态;

    若没有处于正常运行状态,执行步骤获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息。

    可选的,所述操作数据包括所述软件版本信息;

    所述获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息,包括:

    读取所述sqlite数据库中存储的所述数据库版本信息;

    解析所述操作数据中的所述软件版本信息。

    可选的,还包括:

    根据用户在所述客户端软件上的操作数据生成所述差异升级文件。

    可选的,所述差异升级文件包括表升级信息和字段升级信息;

    所述根据差异升级文件对所述sqlite数据库进行表结构的升级操作,所述:

    调用所述差异升级文件;

    根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新。

    可选的,所述根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新,包括:

    读取并解析所述表升级信息包含的操作数据;所述表升级信息包含表名称;

    若是添加表指令,在所述sqlite数据库中创建所述表名称对应的新表;

    若是删除表指令,删除所述sqlite数据库中所述表名称的表;

    和/或,读取并解析所述字段升级信息包含的操作数据;

    若是添加字段指令,在所述sqlite数据库中添加对应字段;

    若是删除字段指令,在所述sqlite数据库中删除对应字段。

    可选的,还包括:

    创建系统表;

    在所述系统表中添加版本字段;所述版本字段中存储所述数据库版本信息。

    一种sqlite数据库升级装置,包括:

    版本信息获取模块,用于获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;

    版本匹配模块,用于判断所述数据库版本信息和所述软件版本信息是否匹配;

    数据库升级模块,用于若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。

    一种sqlite数据库升级终端,包括:

    处理器,以及与所述处理器相连接的存储器;

    所述存储器用于存储计算机程序,所述计算机程序至少用于执行上述所述的sqlite数据库升级方法;

    所述处理器用于调用并执行所述存储器中的所述计算机程序。

    一种sqlite数据库升级系统,包括:

    sqlite数据库、客户端软件,及分别与所述sqlite数据库和所述客户端软件通信连接的如上述所述的数据库升级终端。

    本申请提供的技术方案可以包括以下有益效果:

    一种sqlite数据库升级方法,包括:获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;判断所述数据库版本信息和所述软件版本信息是否匹配;若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。上述方法中将数据库版本和客户端软件版本进行匹配,二者不匹配时,对sqlite数据库进行版本升级。上述方法中实现了对sqlite数据库的版本升级,解决了客户端软件升级带来的数据库表结构变更的问题。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1是本发明一实施例提供的sqlite数据库升级方法的流程图;

    图2是本发明另一实施例提供的sqlite数据库升级方法的流程图;

    图3是本发明一实施例提供的sqlite数据库升级装置的模块图;

    图4是本发明一实施例提供的sqlite数据库升级终端的结构图;

    图5是本发明一实施例提供的sqlite数据库升级系统的结构图。

    具体实施方式

    为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

    当用户使用客户端软件的过程中,遇到客户端软件版本更新后,对应的数据库版本仍是原来的旧版本,此时需要对数据库进行升级更新操作,具体的操作过程如下。

    图1是本发明一实施例提供的sqlite数据库升级方法的流程图。参见图1,一种sqlite数据库升级方法,包括:

    步骤101:获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息。当用户使用客户端软件时,软件在使用过程中会与数据库建立连接,当每次建立连接后,在数据库预先创建的系统表内获取sqlite数据库自身的版本信息。客户端软件的软件版本信息通过软件发送的操作数据中得到。

    步骤102:判断所述数据库版本信息和所述软件版本信息是否匹配。其中,数据库版本信息和软件版本信息匹配标准根据软件版本类型和数据库版本类型决定。例如:数据库中系统表中的数据库版本信息为数据库1.0版,而客户端软件的软件版本信息为软件2.0版,此时二者之间的版本并不匹配。需要注意的是,数据库的具体版本和软件的具体版本之间的关系并不唯一固定,并不仅仅局限于数据库1.0对应软件1.0,具体的匹配关系可根据实际情况而定,只要数据库能够支撑软件运行即可。

    步骤103:若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。此处差异升级文件根据用户在客户端软件的操作数据生成。在对数据库升级时,实际上是对数据库中的表结构进行更新,对表结构的更新操作具体的包括:增加/删除表、增加/删除字段。

    上述方法中通过将数据库版本和客户端软件版本进行匹配,进而实现对sqlite数据库的升级更新,解决客户端软件升级带来的数据库表结构变更的问题,避免了客户端软件和数据库版本不匹配导致无法正常使用软件的情况,提高了用户体验。

    为了更详细地介绍本申请中方案,在上述实施例的基础上,本申请还公开了另外一个实施例,具体如下:

    图2是本发明另一实施例提供的sqlite数据库升级方法的流程图。参见图2,一种sqlite数据库升级方法,包括:

    步骤201:创建系统表。本申请中数据库升级系统在初始化时,首先创建一张系统表,用来存放sqlite数据库的版本信息,该版本信息即存储在版本字段内。

    步骤202:在所述系统表中添加版本字段;所述版本字段中存储所述数据库版本信息。

    步骤203:接收用户在客户端软件上的操作数据。用户在客户端软件上进行交互操作,当用户在使用该软件时,软件后台会调用数据库,同时会根据用户在软件上的操作行为生成操作数据,将该操作数据发送至sqlite数据库,该操作数据中会包含用户当前使用的软件版本信息。

    步骤204:根据所述操作数据判断所述客户端软件是否处于正常运行状态。当操作数据中包含正常的数据请求类的数据或反馈数据等内容时,则认定客户端软件处于正常运行状态,若操作数据中包含错误提示等数据时,则认定当前客户端软件没有处于正常运行状态。此时则需要对软件当前的异常情况进行分析,确定是否因为数据库版本和软件版本不匹配造成异常。需要注意的是,此处判断软件是否正常运行的条件并不唯一,可根据软件的类型及运行状况而定。当客户端软件正常运行时,则持续接收操作数据即可。

    步骤205:若客户端软件没处于正常运行状态时,根据操作数据生成差异升级文件,并获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息。数据库中的系统表中会存有数据库版本信息,只需调取系统表中的版本字段的具体内容,即可获知数据库版本信息。在接收到的用户的操作数据中包含软件版本信息,只需对操作数据进行解析,得到其中的软件版本信息即可。同时,本申请系统在接收到该操作数据后,根据该操作数据生成差异升级文件,该差异升级文件是预先创建的,当用户使用客户端软件生成操作数据后,本申请系统接收到该操作数据后会自动将操作数据存入差异升级文件,该差异升级文件中即会存有当前客户端软件的软件版本信息。需要注意的是,此处的差异升级文件内存储的数据种类并不固定,不仅仅局限于软件版本信息,还可以根据实际需求存储其他类型的数据。

    步骤206:判断所述数据库版本信息和所述软件版本信息是否匹配。例如,客户端软件的软件版本如果是2.0,需要数据库版本也为2.0,才能保证客户端软件正常运行。当数据库版本和软件版本匹配时,则无需对数据库进行版本升级。

    步骤207:当数据库版本信息和软件版本信息不匹配时,调用所述差异升级文件。差异升级文件中存有客户端软件的软件版本信息及客户端软件的数据,根据上述相关数据可得到与数据库当前版本数据不同的数据,根据不同数据可生成数据库的升级文件,即差异升级文件。

    步骤208:根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新。当数据库进行升级时,即对数据库中的表结构进行升级,具体方式有:对表的增删改查,对表中字段的增删改查等。当对数据库进行增加或删除时,具体的更新过程包括:读取并解析所述表升级信息包含的操作数据;所述表升级信息包含表名称;若是添加表指令,在所述sqlite数据库中创建所述表名称对应的新表;若是删除表指令,删除所述sqlite数据库中所述表名称的表;和/或,读取并解析所述字段升级信息包含的操作数据;若是添加字段指令,在所述sqlite数据库中添加对应字段;若是删除字段指令,在所述sqlite数据库中删除对应字段。

    为了更清楚的介绍本申请中升级方案,现举例进行介绍,具体如下:

    用户a使用客户端软件b进行通信聊天,当前软件b的版本为android1.0,sqlite数据库版本为1.0。当前软件b的功能有发送文字信息和静态图片,用户a在某天对软件b进行了升级,软件版本升级为android2.0,增加了查看动图和发送语音的功能。此时sqlite数据库的版本仍然为1.0,数据库中存储的数据仍然是支持发送或接受文字信息和静态图片的数据,此时由于sqlite数据库中的数据并不支持查看动图和发送语音的功能,所以,即使软件版本为android2.0也不能使用查看动图和发送语音的功能。本申请系统经过判断数据库版本和软件版本,得到二者版本不一致,导致软件中的新增功能无法正常运行,此时需要对数据库进行升级更新的操作。当用户a在软件b上发送语音时,会生成对应的操作数据,且该操作数据会发送至本申请系统,本申请系统会创建名称为差异升级文件,该文件中会存储有软件b的版本信息和发送语音功能对应的sql语句,此时,系统执行该差异升级文件中的sql语句对数据库进行升级,当执行该sql语句后,在数据库中增加语音功能对应的系统表,该表中会存储支持软件b语音功能所需的数据。此时数据库版本实现升级更新,可支持软件b的语音功能。

    上述实施例中通过对客户端软件版本和数据库版本匹配,对数据库进行版本升级,解决了客户端软件升级带来的数据库表结构变更的问题。

    对应于本发明实施例提供的一种sqlite数据库升级方法,本发明实施例还提供一种sqlite数据库升级装置。请参见下文实施例。

    图3是本发明一实施例提供的sqlite数据库升级装置的模块图。参见图3,一种sqlite数据库升级装置,包括:

    版本信息获取模块301,用于获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;

    版本匹配模块302,用于判断所述数据库版本信息和所述软件版本信息是否匹配;

    数据库升级模块303,用于若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。

    在上述实施例的基础上,本申请中还公开:

    表创建模块,用于创建系统表;

    版本字段添加模块,用于在所述系统表中添加版本字段;所述版本字段中存储所述数据库版本信息。

    升级文件生成模块,用于根据用户在所述客户端软件上的操作数据生成所述差异升级文件。

    数据库升级模块303具体用于:调用所述差异升级文件;根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新。

    上述装置中通过对数据库版本进行升级,解决了客户端软件升级带来的数据库表结构变更的问题。

    为了更清楚地介绍实现本发明实施例的硬件系统,对应于本发明实施例提供的一种sqlite数据库升级方法,本发明实施例还提供一种sqlite数据库升级系统。请参见下文实施例。

    图4是本发明一实施例提供的sqlite数据库升级终端的结构图。参见图4,一种sqlite数据库升级终端,其包括:

    处理器401,以及与所述处理器401相连接的存储器402;

    所述存储器402用于存储计算机程序,所述计算机程序至少用于执行上述所述的sqlite数据库升级方法;

    所述处理器401用于调用并执行所述存储器402中的所述计算机程序。

    图5是本发明一实施例提供的sqlite数据库升级系统的结构图。参见图5,一种sqlite数据库升级系统,包括:

    sqlite数据库501、客户端软件502,及分别与所述sqlite数据库501和所述客户端软件502通信连接的如上述所述的数据库升级终端503。

    上述终端及系统会根据软件版本和数据库版本的匹配程度,对数据库进行版本升级,解决了客户端软件升级带来的数据库表结构变更的问题。

    可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

    需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

    流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

    应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

    本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

    此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

    上述提到的存储介质可以是只读存储器,磁盘或光盘等。

    在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

    尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。


    技术特征:

    1.一种sqlite数据库升级方法,其特征在于,包括:

    获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;

    判断所述数据库版本信息和所述软件版本信息是否匹配;

    若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。

    2.根据权利要求1所述的方法,其特征在于,还包括:

    接收用户在所述客户端软件上的操作数据;

    根据所述操作数据判断所述客户端软件是否处于正常运行状态;

    若没有处于正常运行状态,执行步骤获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息。

    3.根据权利要求2所述的方法,其特征在于,所述操作数据包括所述软件版本信息;

    所述获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息,包括:

    读取所述sqlite数据库中存储的所述数据库版本信息;

    解析所述操作数据中的所述软件版本信息。

    4.根据权利要求2所述的方法,其特征在于,还包括:

    根据用户在所述客户端软件上的操作数据生成所述差异升级文件。

    5.根据权利要求1所述的方法,其特征在于,所述差异升级文件包括表升级信息和字段升级信息;

    所述根据差异升级文件对所述sqlite数据库进行表结构的升级操作,所述:

    调用所述差异升级文件;

    根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新。

    6.根据权利要求5所述的方法,其特征在于,所述根据所述表升级信息和/或所述字段升级信息对所述sqlite数据库进行更新,包括:

    读取并解析所述表升级信息包含的操作数据;所述表升级信息包含表名称;

    若是添加表指令,在所述sqlite数据库中创建所述表名称对应的新表;

    若是删除表指令,删除所述sqlite数据库中所述表名称的表;

    和/或,读取并解析所述字段升级信息包含的操作数据;

    若是添加字段指令,在所述sqlite数据库中添加对应字段;

    若是删除字段指令,在所述sqlite数据库中删除对应字段。

    7.根据权利要求1所述的方法,其特征在于,还包括:

    创建系统表;

    在所述系统表中添加版本字段;所述版本字段中存储所述数据库版本信息。

    8.一种sqlite数据库升级装置,其特征在于,包括:

    版本信息获取模块,用于获取sqlite数据库的数据库版本信息和对应的客户端软件的软件版本信息;

    版本匹配模块,用于判断所述数据库版本信息和所述软件版本信息是否匹配;

    数据库升级模块,用于若不匹配,根据差异升级文件对所述sqlite数据库进行表结构的升级操作。

    9.一种sqlite数据库升级终端,其特征在于,包括:

    处理器,以及与所述处理器相连接的存储器;

    所述存储器用于存储计算机程序,所述计算机程序至少用于执行权利要求1-7任一项所述的sqlite数据库升级方法;

    所述处理器用于调用并执行所述存储器中的所述计算机程序。

    10.一种sqlite数据库升级系统,其特征在于,包括:

    sqlite数据库、客户端软件,及分别与所述sqlite数据库和所述客户端软件通信连接的如权利要求9所述的数据库升级终端。

    技术总结
    本发明涉及一种SQLITE数据库升级方法、装置、终端及系统。该方法包括:获取SQLITE数据库的数据库版本信息和对应的客户端软件的软件版本信息;判断所述数据库版本信息和所述软件版本信息是否匹配;若不匹配,根据差异升级文件对所述SQLITE数据库进行表结构的升级操作。上述方法中通过对软件版本信息和数据库版本信息进行匹配,进而对数据库进行版本升级,解决了因客户端软件升级带来的数据库表结构变更的问题。

    技术研发人员:周保江
    受保护的技术使用者:上海中通吉网络技术有限公司
    技术研发日:2020.12.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23272.html

    最新回复(0)