一种数据更新方法及相关设备与流程

文档序号:21606227发布日期:2020-07-24 17:24阅读:197来源:国知局
本发明涉及数据处理
技术领域
:,尤其涉及一种数据更新方法及相关设备。
背景技术
::目前,针对数据定义语言(datadefinitionlanguage,ddl)的修正,通常是将每一个ddl语句独立写入每一个数据库脚本文件,每个数据库脚本文件自带信息摘要值,这样由于执行过的数据库脚本文件存在相同的信息摘要值,那么可以对执行过的数据库脚本文件进行忽视,而每次仅执行未执行的数据库脚本文件。这种方式需要将每个数据库脚本文件独立文件化,会产生大量的数据库脚本文件创建及管理,处理效率慢,且不能整体化处理包括多个ddl语句的大数据库脚本文件。技术实现要素:本申请实施例提供了一种数据更新方法及相关设备,可以实现整体化处理包括多个数据定义语句的数据库脚本文件,提高数据定义语句的更新效率。第一方面本申请实施例提供一种数据更新方法,该方法包括:运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为一个,所述目标更新策略为统一版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:从所述数据库脚本文件的运行信息中提取所述第二文件运行错误的目标信息;基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述基于所述目标信息对所述第二文件中的数据定义语句进行更新的具体实施方式为:向终端设备发送所述目标信息和所述第二文件,以便于所述终端设备基于所述目标信息确定并返回针对所述第二文件中数据定义语句的更新指示信息;接收所述终端设备返回的所述更新指示信息,并基于所述更新指示信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为多个,所述目标更新策略为多版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:从所述第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句;在所述第二文件中的各个所述目标语句之前添加预设脚本;运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件。在一个实施例中,所述预设脚本包括至少一个条件语句以及所述至少一个条件语句中各个条件语句各自对应的动作语句,所述运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件的具体实施方式为:运行添加所述预设脚本后的第二文件,检测所述第二文件中的各个数据定义语句是否满足所述各个条件语句对应的条件;若检测到所述第二文件中的第一数据定义语句满足所述第一条件语句对应的条件,则对所述第一数据定义语句执行所述第一动作语句对应的数据定义语句更新动作,以更新所述第一数据定义语句,其中,所述第一数据定义语句为所述第二文件包括的至少一个数据定义语句中的任一个,所述第一条件语句为所述至少一个条件语句中的任一个条件语句,所述第一动作语句为所述第一条件语句对应的动作语句。在一个实施例中,还可以对所述第一文件添加运行成功标识,对所述第二文件添加运行失败标识;基于所述运行失败标识继续运行所述更新后的第二文件,并通过所述日志文件记录所述更新后的第二文件的运行信息;若检测到所述更新后的第二文件运行错误,则在所述更新后的第二文件中定位运行错误的目标位置;根据所述错误的目标位置对所述更新后的第二文件进行文件切割,得到第三文件和第四文件,所述第三文件为所述更新后的第二文件中所述目标位置之前的文件,所述第四文件为所述更新后的第二文件中所述目标位置以及所述目标位置之后的文件;基于所述目标更新策略对所述第四文件中的数据定义语句进行更新,得到更新后的第四文件。在一个实施例中,所述基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:对所述目标信息进行关键字提取,以得到参考关键字集合;若所述参考关键字集合中包括第一关键字,则获取所述第一关键字对应的第一数据更新集合;根据所述参考关键字集合中的第二关键字,确定出第二数据更新集合,所述第二关键字为所述参考关键字集合中处所述第一关键字以外的关键字;若所述第一数据更新集合与所述第二数据更新集合中存在相同的数据更新语句,将所述相同的数据更新语句确定为目标数据更新语句;基于所述目标数据更新语句对所述第二文件中的数据定义语句进行更新,以得到更新后的第二文件。第二方面本申请实施例提供了一种数据更新装置,所述装置包括:运行模块,用于运行数据库脚本文件;记录模块,用于通过日志文件记录所述数据库脚本文件的运行信息;处理模块,用于若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置,并根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;所述处理模块,还用于检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;所述处理模块,还用于基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。第三方面,本申请实施例提供了一种服务器,该服务器包括处理器、通信接口和存储器,所述处理器、通信接口和存储器相互连接,其中,所述通信接口受所述处理器的控制用于收发消息,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本申请实施例中,服务器可以运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。进一步地,可以根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,进而基于目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件。实施本申请实施例,可以通过对数据库脚本文件进行文件切割的方式实现对数据定义语句的更新,无需大量的数据库脚本文件的创建及管理,实现整体化处理包括多个数据定义语句的数据库脚本文件,提高数据定义语句的更新效率。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种数据更新方法的流程示意图;图2是本申请实施例提供的一种数据库脚本文件对应的表结构的示意图;图3是本申请实施例提供的另一种数据更新方法的流程示意图;图4是本申请实施例提供的又一种数据更新方法的流程示意图;图5是本申请实施例提供的一种数据更新装置的示意框图;图6是本申请实施例提供的一种服务器的示意性框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1是本申请实施例提供的一种数据更新方法的流程示意图,该方法应用于服务器,如图所示,该数据更新方法可包括:s101:运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。其中,上述数据库脚本文件可以为结构化查询语言(structuredquerylanguage,sql)文件,sql语言共分为四大类:数据查询语言(dataquerylanguage,dql),数据操纵语言(datamanipulationlanguage,dml),数据定义语言(datadefinationlanguage,ddl),数据控制语言(datacontrollanguage,dcl)。其中,ddl语句是数据定义语句,包括各种数据对象的创建、修改和删除,以及授权等操作。在一个实施例中,当需要修正数据库脚本文件中的数据定义语句时,可以运行数据库脚本文件,并在运行过程中,通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。s102:根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,该第一文件为数据库脚本文件中该位置之前的文件,第二文件为数据库脚本文件中该位置以及位置之后的文件。示例性地,假设数据库脚本文件对应的表结构如图2所示,数据库脚本文件包括语句1、语句2、语句3、语句4、语句5和语句6,运行错误的位置为语句3所在的位置。这种情况下,服务器可以基于该位置对数据库脚本文件进行文件切割,将语句3所在位置之前的文件切割为第一文件,如图2中的20所示;将包括语句3所在位置以及语句3所在位置之后的文件切割为第二文件,如图2中的21所示。s103:检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略。s104:基于该目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,由于服务器对应应用程序的版本更迭,服务器的数据库可以存储多个版本的应用程序的数据,相应地,数据库脚本文件也可以对应多种版本的应用程序。在对ddl进行更新时,对于一个应用程序版本的数据库而言,可以采用统一更新的方式进行更新。但对于多个应用程序版本的数据库而言,统一更新比较困难,原因在于各个版本表结构不一致,无法通过一套ddl脚本进行统一有效的矫正。比如版本1缺少字段a,版本2缺少字段b,版本3缺少字段c,如果采用统一更新的方式,统一增加字段a、字段b和字段c,将使得所有版本都包含字段a、字段b和字段c,导致对ddl的更新有误。为了解决上述问题,可以预先建立应用程序版本的数量与预设的各个更新策略的对应关系。这种情况下,当服务器检测出数据库脚本文件对应的应用程序版本的数量后,可以从上述预先建立应用程序版本的数量与预设的各个更新策略的对应关系中,确定出该数据库脚本文件对应的应用程序版本的数量对应的目标更新策略,进一步地,基于该目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件。示例性地,上述预设的至少一个更新策略可以包括统一版本更新策略和多版本更新策略,该统一版本更新策略对应的应用程序版本的数量为一个,该多版本更新策略对应的应用程序版本的数量为多个。在一个实施例中,可以对第一文件添加运行成功标识,对第二文件添加运行失败标识。其中,由于对第一文件添加运行成功标识,对第二文件添加运行失败标识所以下次服务器再去执行数据库脚本文件就可以自动跳过第一文件,从而每次只从出错的位置开始继续尝试。进一步地,在基于该目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件之后,可以基于该运行失败标识继续运行更新后的第二文件,并通过日志文件记录更新后的第二文件的运行信息,若检测到更新后的第二文件运行错误,则在更新后的第二文件中定位运行错误的目标位置,并根据错误的目标位置对更新后的第二文件进行文件切割,得到第三文件和第四文件,其中,该第三文件为更新后的第二文件中目标位置之前的文件,第四文件为更新后的第二文件中目标位置以及目标位置之后的文件。进一步地,可以基于步骤s103中确定出的目标更新策略对第四文件中的数据定义语句进行更新,得到更新后的第四文件。以此类推,服务器检测到第四文件更新完成后,可以继续执行该更新后的第四文件,若检测到执行出错,则基于出错位置继续切割,不断去迭代追加,从而只需要更新出错的数据定义语句。本申请实施例中,服务器可以运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。进一步地,可以根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,进而基于目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件。实施本申请实施例,可以通过对数据库脚本文件进行文件切割的方式实现对数据定义语句的更新,无需大量的数据库脚本文件的创建及管理,实现整体化处理包括多个数据定义语句的数据库脚本文件,提高数据定义语句的更新效率。参见图3,图3是本申请实施例提供的另一种数据更新方法的流程示意图,该方法应用于服务器,如图所示,该数据更新方法可包括:s301:运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。s302:根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,该第一文件为数据库脚本文件中该位置之前的文件,第二文件为数据库脚本文件中该位置以及位置之后的文件。s303:检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,该应用程序版本的数量为一个,目标更新策略为统一版本更新策略。其中,步骤s301~步骤s303的具体实施方式,可以参见上述实施例中步骤s101~步骤s103的相关描述,此处不再赘述。s304:从数据库脚本文件的运行信息中提取第二文件运行错误的目标信息,并基于该目标信息对第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,基于该目标信息对第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式可以包括:向终端设备发送目标信息和第二文件,以便于终端设备基于目标信息确定并返回针对第二文件中数据定义语句的更新指示信息。进一步地,接收终端设备返回的更新指示信息,并基于更新指示信息对第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,终端设备接收到服务器发送的目标信息和第二文件后,可以展示目标信息和第二文件,用户可以查看目标信息和第二文件,并基于该目标信息确定第二文件本次运行错误的原因,进而输入对第二文件中数据定义语句的更新指示信息,该更新指示信息用于指示对第二文件中的哪一个数据定义语句进行修改,以及如何修改。进一步地,终端设备可以将该更新指示信息发送至服务器。服务器可以从第二文件中至少一个的数据定义语句中确定出更新指示信息指示的目标数据定义语句,并基于更新指示信息的指示对目标数据定义语句进行更新,从而实现对第二文件中数据定义语句的更新,得到更新后的第二文件。在一个实施例中,基于目标信息对第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式还可以包括:对目标信息进行关键字提取,以得到参考关键字集合;若参考关键字集合中包括第一关键字,则获取第一关键字对应的第一数据更新集合;根据参考关键字集合中的第二关键字,确定出第二数据更新集合,第二关键字为参考关键字集合中处第一关键字以外的关键字。若第一数据更新集合与第二数据更新集合中存在相同的数据更新语句,则将相同的数据更新语句确定为目标数据更新语句,并基于目标数据更新语句对第二文件中的数据定义语句进行更新,以得到更新后的第二文件。示例性地,假设若第一数据更新集合与第二数据更新集合中存在相同的数据更新语句为“altertabletabaddcolumnaxxx,bxxx,cxxx”其中,altertabletabadd为用于添加字段的语句。这种情况下,服务器可以将“altertabletabaddcolumnaxxx,bxxx,cxxx”确定为目标数据更新语句,并基于该目标数据更新语句,在第二文件中的数据定义语句中增加字段a、字段b和字段c,以得到更新后的第二文件。或者,在另一个实施例中,若第一数据更新集合与第二数据更新集合中不存在相同的数据更新语句,则获取第一数据更新集合与第二数据更新集合中的数据更新语句之间的相似度,以得到多个相似度,将多个相似度中相似度最高的两个数据更新语句进行融合,得到第一参考数据更新语句,将该第一参考数据更新语句确定为目标数据更新语句。本申请实施例中,可以服务器可以运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。进一步地,可以根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,该应用程序版本的数量为一个,目标更新策略为统一版本更新策略。进一步地,可以从数据库脚本文件的运行信息中提取第二文件运行错误的目标信息,并基于该目标信息对第二文件中的数据定义语句进行更新,得到更新后的第二文件。实施本申请实施例,可以通过对数据库脚本文件进行文件切割的方式实现对数据定义语句的更新,无需大量的数据库脚本文件的创建及管理,实现整体化处理包括多个数据定义语句的数据库脚本文件,提高数据定义语句的更新效率。参见图4,图4是本申请实施例提供的又一种数据更新方法的流程示意图,该方法应用于服务器,如图所示,该数据更新方法可包括:s401:运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。s402:根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,该第一文件为数据库脚本文件中该位置之前的文件,第二文件为数据库脚本文件中该位置以及位置之后的文件。s403:检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,该应用程序版本的数量为多个,目标更新策略为多版本更新策略。其中,步骤s401~步骤s403的具体实施方式,可以参见上述实施例中步骤s101~步骤s103的相关描述,此处不再赘述。s404:从第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句,在第二文件中的各个目标语句之前添加预设脚本。其中,该目标语句是预先选取的容易出错的ddl,该预设脚本为开发人员根据实验测算数据预先设置的,后续可以根据实际需求进行调整。s405:运行添加预设脚本后的第二文件,以更新第二文件中的数据定义语句,得到更新后的第二文件。在一个实施例中,预设脚本包括至少一个条件语句以及至少一个条件语句中各个条件语句各自对应的动作语句,运行添加预设脚本后的第二文件,以更新第二文件中的数据定义语句,得到更新后的第二文件的具体实施方式包括:运行添加预设脚本后的第二文件,检测第二文件中的各个数据定义语句是否满足各个条件语句对应的条件,若检测到第二文件中的第一数据定义语句满足第一条件语句对应的条件,则对第一数据定义语句执行第一动作语句对应的数据定义语句更新动作,以更新第一数据定义语句,其中,第一数据定义语句为第二文件包括的至少一个数据定义语句中的任一个,第一条件语句为至少一个条件语句中的任一个条件语句,第一动作语句为第一条件语句对应的动作语句。对于一个应用程序版本的数据库而言,可以进行统一修正。对于多个应用程序版本的数据库进行统一修正比较困难,原因在于各个版本表结构不一致,无法通过一套ddl脚本进行统一有效的矫正。比如版本1缺少字段a,版本2缺少字段b,版本3缺少字段c,这样要统一修正所有版本都包含字段a、b、c,就不能笼统的使用更新语句“altertabletabaddcolumnaxxx,bxxx,cxxx”对数据定义语句进行更新。为了解决多版本无法统一修正的问题,本申请实施例中在第二文件中的各个目标语句之前添加预设脚本,该预设脚本为表征多版本数据库的表结构差异的判断条件,以及该判断条件满足时需要执行的执行动作(即上述数据定义语句更新动作)。示例性地,假设第一条件语句对应的条件为数据定义语句不存在字段a,该第一条件语句对应的数据定义语句更新动作为添加字段a。这种情况下,若服务器检测到任一个数据定义语句不存在字段a,则可以对该任一数据定义语句执行添加字段a的数据定义语句更新动作。本申请实施例中,可以服务器可以运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。进一步地,可以根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,该应用程序版本的数量为多个,目标更新策略为多版本更新策略。进一步地,可以从第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句,在第二文件中的各个目标语句之前添加预设脚本,并运行添加预设脚本后的第二文件,以更新第二文件中的数据定义语句,得到更新后的第二文件。实施本申请实施例,可以对多版本的数据定义语句进行统一更新。本申请实施例还提供了一种数据更新装置。该装置包括用于执行前述图1、图3或者图4所述的方法的模块。具体地,参见图5,是本申请实施例提供的数据更新装置的示意框图。本实施例的数据更新装置包括:运行模块50,用于运行数据库脚本文件;记录模块51,用于通过日志文件记录所述数据库脚本文件的运行信息;处理模块51,用于若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置,并根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;所述处理模块51,还用于检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;所述处理模块51,还用于基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为一个,所述目标更新策略为统一版本更新策略,所述处理模块51,具体用于从所述数据库脚本文件的运行信息中提取所述第二文件运行错误的目标信息;基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述装置还包括通信模块52,所述处理模块51,还具体用于通过所述通信模块52向终端设备发送所述目标信息和所述第二文件,以便于所述终端设备基于所述目标信息确定并返回针对所述第二文件中数据定义语句的更新指示信息;通过所述通信模块52接收所述终端设备返回的所述更新指示信息,并基于所述更新指示信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为多个,所述目标更新策略为多版本更新策略,所述处理模块51,还具体用于从所述第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句;在所述第二文件中的各个所述目标语句之前添加预设脚本;运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件。在一个实施例中,所述预设脚本包括至少一个条件语句以及所述至少一个条件语句中各个条件语句各自对应的动作语句,所述处理模块51,还具体用于运行添加所述预设脚本后的第二文件,检测所述第二文件中的各个数据定义语句是否满足所述各个条件语句对应的条件;若检测到所述第二文件中的第一数据定义语句满足所述第一条件语句对应的条件,则对所述第一数据定义语句执行所述第一动作语句对应的数据定义语句更新动作,以更新所述第一数据定义语句,其中,所述第一数据定义语句为所述第二文件包括的至少一个数据定义语句中的任一个,所述第一条件语句为所述至少一个条件语句中的任一个条件语句,所述第一动作语句为所述第一条件语句对应的动作语句。在一个实施例中,所述处理模块51,还用于对所述第一文件添加运行成功标识,对所述第二文件添加运行失败标识;基于所述运行失败标识继续运行所述更新后的第二文件,并通过所述日志文件记录所述更新后的第二文件的运行信息;若检测到所述更新后的第二文件运行错误,则在所述更新后的第二文件中定位运行错误的目标位置;根据所述错误的目标位置对所述更新后的第二文件进行文件切割,得到第三文件和第四文件,所述第三文件为所述更新后的第二文件中所述目标位置之前的文件,所述第四文件为所述更新后的第二文件中所述目标位置以及所述目标位置之后的文件;基于所述目标更新策略对所述第四文件中的数据定义语句进行更新,得到更新后的第四文件。在一个实施例中,所述处理模块51,还具体用于对所述目标信息进行关键字提取,以得到参考关键字集合;若所述参考关键字集合中包括第一关键字,则获取所述第一关键字对应的第一数据更新集合;根据所述参考关键字集合中的第二关键字,确定出第二数据更新集合,所述第二关键字为所述参考关键字集合中处所述第一关键字以外的关键字;若所述第一数据更新集合与所述第二数据更新集合中存在相同的数据更新语句,将所述相同的数据更新语句确定为目标数据更新语句;基于所述目标数据更新语句对所述第二文件中的数据定义语句进行更新,以得到更新后的第二文件。需要说明的是,本申请实施例所描述的数据更新装置的各功能模块的功能可根据图1、图3或者图4所述的方法实施例中的方法具体实现,其具体实现过程可以参照图1、图3或者图4的方法实施例的相关描述,此处不再赘述。请参见图6,图6是本申请实施例提供的一种服务器的示意性框图,如图6所示,该服务器包括,处理器601、存储器602和通信接口603。上述处理器601、存储器602和通信接口603可通过总线或其他方式连接,在本申请实施例所示图6中以通过总线连接为例。其中,存储器602用于存储计算机程序,所述计算机程序包括程序指令,处理器601用于执行存储器602存储的程序指令。其中,处理器601被配置用于调用所述程序指令执行:运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为一个,所述目标更新策略为统一版本更新策略,所述处理器601,具体用于从所述数据库脚本文件的运行信息中提取所述第二文件运行错误的目标信息;基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述处理器601,还具体用于通过所述通信接口603向终端设备发送所述目标信息和所述第二文件,以便于所述终端设备基于所述目标信息确定并返回针对所述第二文件中数据定义语句的更新指示信息;通过所述通信接口603接收所述终端设备返回的所述更新指示信息,并基于所述更新指示信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为多个,所述目标更新策略为多版本更新策略,所述处理器601,还具体用于从所述第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句;在所述第二文件中的各个所述目标语句之前添加预设脚本;运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件。在一个实施例中,所述预设脚本包括至少一个条件语句以及所述至少一个条件语句中各个条件语句各自对应的动作语句,所述处理器601,还具体用于运行添加所述预设脚本后的第二文件,检测所述第二文件中的各个数据定义语句是否满足所述各个条件语句对应的条件;若检测到所述第二文件中的第一数据定义语句满足所述第一条件语句对应的条件,则对所述第一数据定义语句执行所述第一动作语句对应的数据定义语句更新动作,以更新所述第一数据定义语句,其中,所述第一数据定义语句为所述第二文件包括的至少一个数据定义语句中的任一个,所述第一条件语句为所述至少一个条件语句中的任一个条件语句,所述第一动作语句为所述第一条件语句对应的动作语句。在一个实施例中,所述处理器601,还用于对所述第一文件添加运行成功标识,对所述第二文件添加运行失败标识;基于所述运行失败标识继续运行所述更新后的第二文件,并通过所述日志文件记录所述更新后的第二文件的运行信息;若检测到所述更新后的第二文件运行错误,则在所述更新后的第二文件中定位运行错误的目标位置;根据所述错误的目标位置对所述更新后的第二文件进行文件切割,得到第三文件和第四文件,所述第三文件为所述更新后的第二文件中所述目标位置之前的文件,所述第四文件为所述更新后的第二文件中所述目标位置以及所述目标位置之后的文件;基于所述目标更新策略对所述第四文件中的数据定义语句进行更新,得到更新后的第四文件。在一个实施例中,所述处理器601,还具体用于对所述目标信息进行关键字提取,以得到参考关键字集合;若所述参考关键字集合中包括第一关键字,则获取所述第一关键字对应的第一数据更新集合;根据所述参考关键字集合中的第二关键字,确定出第二数据更新集合,所述第二关键字为所述参考关键字集合中处所述第一关键字以外的关键字;若所述第一数据更新集合与所述第二数据更新集合中存在相同的数据更新语句,将所述相同的数据更新语句确定为目标数据更新语句;基于所述目标数据更新语句对所述第二文件中的数据定义语句进行更新,以得到更新后的第二文件。应当理解,在本申请实施例中,所称处理器601可以是中央处理单元(centralprocessingunit,cpu),该处理器601还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器。例如,存储器602还可以存储日志文件等等。具体实现中,本申请实施例中所描述的处理器601、存储器602和通信接口603可执行本申请实施例提供的图1、图3或者图4所述的方法实施例所描述的实现方式,也可执行本申请实施例所描述的基于数据处理的分单装置的实现方式,在此不再赘述。在本申请的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。所述计算机可读存储介质可以是前述任一实施例所述的服务器的内部存储单元,例如服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述服务器的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1