一种数据更新方法及相关设备技术

技术编号:24995848 阅读:15 留言:0更新日期:2020-07-24 17:58
本申请实施例公开了一种数据更新方法及相关设备,所述方法应用于数据处理技术领域,包括:运行数据库脚本文件,通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置;根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略,基于目标更新策略对第二文件中的数据定义语句进行更新,得到更新后的第二文件。实施本申请实施例,有利于提高数据定义语句的更新效率。

【技术实现步骤摘要】
一种数据更新方法及相关设备
本专利技术涉及数据处理
,尤其涉及一种数据更新方法及相关设备。
技术介绍
目前,针对数据定义语言(Datadefinitionlanguage,DDL)的修正,通常是将每一个DDL语句独立写入每一个数据库脚本文件,每个数据库脚本文件自带信息摘要值,这样由于执行过的数据库脚本文件存在相同的信息摘要值,那么可以对执行过的数据库脚本文件进行忽视,而每次仅执行未执行的数据库脚本文件。这种方式需要将每个数据库脚本文件独立文件化,会产生大量的数据库脚本文件创建及管理,处理效率慢,且不能整体化处理包括多个DDL语句的大数据库脚本文件。
技术实现思路
本申请实施例提供了一种数据更新方法及相关设备,可以实现整体化处理包括多个数据定义语句的数据库脚本文件,提高数据定义语句的更新效率。第一方面本申请实施例提供一种数据更新方法,该方法包括:运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为一个,所述目标更新策略为统一版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:从所述数据库脚本文件的运行信息中提取所述第二文件运行错误的目标信息;基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述基于所述目标信息对所述第二文件中的数据定义语句进行更新的具体实施方式为:向终端设备发送所述目标信息和所述第二文件,以便于所述终端设备基于所述目标信息确定并返回针对所述第二文件中数据定义语句的更新指示信息;接收所述终端设备返回的所述更新指示信息,并基于所述更新指示信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。在一个实施例中,所述应用程序版本的数量为多个,所述目标更新策略为多版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:从所述第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句;在所述第二文件中的各个所述目标语句之前添加预设脚本;运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件。在一个实施例中,所述预设脚本包括至少一个条件语句以及所述至少一个条件语句中各个条件语句各自对应的动作语句,所述运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件的具体实施方式为:运行添加所述预设脚本后的第二文件,检测所述第二文件中的各个数据定义语句是否满足所述各个条件语句对应的条件;若检测到所述第二文件中的第一数据定义语句满足所述第一条件语句对应的条件,则对所述第一数据定义语句执行所述第一动作语句对应的数据定义语句更新动作,以更新所述第一数据定义语句,其中,所述第一数据定义语句为所述第二文件包括的至少一个数据定义语句中的任一个,所述第一条件语句为所述至少一个条件语句中的任一个条件语句,所述第一动作语句为所述第一条件语句对应的动作语句。在一个实施例中,还可以对所述第一文件添加运行成功标识,对所述第二文件添加运行失败标识;基于所述运行失败标识继续运行所述更新后的第二文件,并通过所述日志文件记录所述更新后的第二文件的运行信息;若检测到所述更新后的第二文件运行错误,则在所述更新后的第二文件中定位运行错误的目标位置;根据所述错误的目标位置对所述更新后的第二文件进行文件切割,得到第三文件和第四文件,所述第三文件为所述更新后的第二文件中所述目标位置之前的文件,所述第四文件为所述更新后的第二文件中所述目标位置以及所述目标位置之后的文件;基于所述目标更新策略对所述第四文件中的数据定义语句进行更新,得到更新后的第四文件。在一个实施例中,所述基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件的具体实施方式为:对所述目标信息进行关键字提取,以得到参考关键字集合;若所述参考关键字集合中包括第一关键字,则获取所述第一关键字对应的第一数据更新集合;根据所述参考关键字集合中的第二关键字,确定出第二数据更新集合,所述第二关键字为所述参考关键字集合中处所述第一关键字以外的关键字;若所述第一数据更新集合与所述第二数据更新集合中存在相同的数据更新语句,将所述相同的数据更新语句确定为目标数据更新语句;基于所述目标数据更新语句对所述第二文件中的数据定义语句进行更新,以得到更新后的第二文件。第二方面本申请实施例提供了一种数据更新装置,所述装置包括:运行模块,用于运行数据库脚本文件;记录模块,用于通过日志文件记录所述数据库脚本文件的运行信息;处理模块,用于若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置,并根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;所述处理模块,还用于检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;所述处理模块,还用于基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。第三方面,本申请实施例提供了一种服务器,该服务器包括处理器、通信接口和存储器,所述处理器、通信接口和存储器相互连接,其中,所述通信接口受所述处理器的控制用于收发消息,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本申请实施例中,服务器可以运行数据库脚本文件,并通过日志文件记录数据库脚本文件的运行信息,若基于运行信息检测到数据库脚本文件运行错误,则在数据库脚本文件中定位运行错误的位置。进一步地,可以根据运行错误的位置对数据库脚本文件进行文件切割,得到第一文件和第二文件,检测数据库脚本文件对应的应用程序版本的数量,并根据应用程序版本的数量从预设的本文档来自技高网...

【技术保护点】
1.一种数据更新方法,其特征在于,所述方法包括:/n运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;/n若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;/n根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;/n检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;/n基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。/n

【技术特征摘要】
1.一种数据更新方法,其特征在于,所述方法包括:
运行数据库脚本文件,并通过日志文件记录所述数据库脚本文件的运行信息;
若基于所述运行信息检测到所述数据库脚本文件运行错误,则在所述数据库脚本文件中定位运行错误的位置;
根据所述运行错误的位置对所述数据库脚本文件进行文件切割,得到第一文件和第二文件,所述第一文件为所述数据库脚本文件中所述位置之前的文件,所述第二文件为所述数据库脚本文件中所述位置以及所述位置之后的文件;
检测所述数据库脚本文件对应的应用程序版本的数量,并根据所述应用程序版本的数量从预设的至少一个更新策略中确定目标更新策略;
基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。


2.根据权利要求1所述的方法,其特征在于,所述应用程序版本的数量为一个,所述目标更新策略为统一版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件,包括:
从所述数据库脚本文件的运行信息中提取所述第二文件运行错误的目标信息;
基于所述目标信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。


3.根据权利要求2所述的方法,其特征在于,所述基于所述目标信息对所述第二文件中的数据定义语句进行更新,包括:
向终端设备发送所述目标信息和所述第二文件,以便于所述终端设备基于所述目标信息确定并返回针对所述第二文件中数据定义语句的更新指示信息;
接收所述终端设备返回的所述更新指示信息,并基于所述更新指示信息对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件。


4.根据权利要求1所述的方法,其特征在于,所述应用程序版本的数量为多个,所述目标更新策略为多版本更新策略,所述基于所述目标更新策略对所述第二文件中的数据定义语句进行更新,得到更新后的第二文件,包括:
从所述第二文件中包括的至少一个数据定义语句中确定预设类型的目标语句;
在所述第二文件中的各个所述目标语句之前添加预设脚本;
运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件。


5.根据权利要求4所述的方法,其特征在于,所述预设脚本包括至少一个条件语句以及所述至少一个条件语句中各个条件语句各自对应的动作语句,所述运行添加所述预设脚本后的第二文件,以更新所述第二文件中的数据定义语句,得到更新后的第二文件,包括:
运行添加所述预设脚本后的第二文件,检测所述第二文件中的各个数据定义语句是否满足所述各个条件语句对应的条件;
若检测到所述第二文件中的第一数据定义语句满足所述第一条件语句对应的条件,则对所述第一数据定义语句执行所述第一动作语句对应的数据定义语句更新动作,以更新所述第一数据定义语句;
其中,所述第一数据定义语句为所述第二文件包括的至少一个数据定义语句中的任一个,所述第一条件语句为所述至少一个条件语句中的任一...

【专利技术属性】
技术研发人员:王琼
申请(专利权)人:平安医疗健康管理股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1