CN113741931A - 软件升级方法、装置、电子设备及可读存储介质 - Google Patents
软件升级方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113741931A CN113741931A CN202110948450.3A CN202110948450A CN113741931A CN 113741931 A CN113741931 A CN 113741931A CN 202110948450 A CN202110948450 A CN 202110948450A CN 113741931 A CN113741931 A CN 113741931A
- Authority
- CN
- China
- Prior art keywords
- version
- database
- data
- test
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 230000008859 change Effects 0.000 claims abstract description 92
- 238000012360 testing method Methods 0.000 claims abstract description 90
- 238000004519 manufacturing process Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012986 modification Methods 0.000 claims description 43
- 230000004048 modification Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012827 research and development Methods 0.000 description 3
- VOZKAJLKRJDJLL-UHFFFAOYSA-N 2,4-diaminotoluene Chemical compound CC1=CC=C(N)C=C1N VOZKAJLKRJDJLL-UHFFFAOYSA-N 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请公开了一种软件升级方法、装置、电子设备及可读存储介质。其中,方法包括根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器;建立远程数据库服务器的本地副本,并基于本地副本记录测试数据库的变更信息。根据测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化;通过读取测试数据库的变更信息生成变更版本包,根据变更版本包对生产数据库进行升级操作。本申请可在软件版本升级过程中,实现数据库的安全同步升级。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种软件升级方法、装置、电子设备及可读存储介质。
背景技术
软件产品在投入使用以后,研发方或者是使用方再经过一段时间运行会提出了变更的要求,需要做较大的修正或纠错,以增强软件产品的功能或提高软件产品的性能,相应的,软件产品会有多个不同的版本。在软件的版本发布升级过程中,在软件迭代发布后,需要进行数据库的同步工作。相关技术通常将数据库升级通常作为最后一个节点放置在软件版本发布升级工作中。
但是在软件的发布过程中,数据库会经常被重构,如果项目的开发周期很长,数据库被多次重构后,数据结构会发生巨大的变化。仅在最后同步数据库中,并不能对数据结构的变更记录进行保存,在升级前也无法根据变更的结构对数据库进行重复性测试,这都会对生产环境升级造成极大的风险。
鉴于此,如何在软件版本升级过程中,实现数据库的安全同步升级,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种软件升级方法、装置、电子设备及可读存储介质,在软件版本升级过程中,可以实现数据库的安全同步升级。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种软件升级方法,包括:
根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器;
建立所述远程数据库服务器的本地副本,并基于所述本地副本记录所述测试数据库的变更信息;
根据所述测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化;
通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作。
可选的,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应数据修改指令,从版本库中获取最新数据库版本;
基于所述数据修改指令锁定所述最新数据库版本对应本地副本中相应的目标数据;
根据所述数据修改指令修改所述目标数据,同时将变更操作记录发送至所述版本库,以触发自动解锁所述目标数据,同时更新所述测试数据库的版本号和所述版本库的对应数据。
可选的,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应回滚修改指令,对回滚版本号对应的目标数据库版本执行回滚操作,得到回滚版本号的前一个数据库版本;
根据所述回滚修改指令对所述前一个数据库版本进行相应的数据修改,同时将变更操作记录发送至版本库。
可选的,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应版本比对指令,获取待比对的第一历史版本和第二历史版本;
根据所述第一历史版本和所述第二历史版本的差异数据生成版本比对结果。
可选的,所述通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作的过程,包括:
根据用户输入的变更升级版本号,读取从所述目标版本对应版本号到所述变更升级版本号之间的所有的变更记录;
根据所述变更记录中发生变化的数据生成所述变更版本包;
删除DML语句进行中的业务数据,保留配置数据;
按照变更顺序将DDL语句及筛选后的DML语句进行排序;
按照排序后的顺序将所述变更版本包执行至所述生产数据库,同时更新数据库版本号为所述变更升级版本号。
可选的,所述根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器,包括:
根据用户输入的数据源连接测试服务器的测试数据库;
从所述测试数据库中读取数据库对象数据,并按照对象数据类型将表数据分为配置数据和业务数据,形成所述远程数据库服务器。
可选的,所述按照排序后的顺序将所述变更版本包执行至所述生产数据库之前,还包括:
备份所述生产数据库。
本发明实施例另一方面提供了一种软件升级装置,包括:
远端服务器形成模块,用于根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器;
副本管理模块,用于建立所述远程数据库服务器的本地副本,并基于所述本地副本记录所述测试数据库的变更信息;
初始化模块,用于根据所述测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化;
版本升级模块,用于通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作。
本发明实施例还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述软件升级方法的步骤。
本发明实施例最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述软件升级方法的步骤。
本申请提供的技术方案的优点在于,在版本升级发布工作中,通过本地副本实现对数据库演化的过程进行记录,使开发人员对数据库可进行异步操作,便于对数据库修改记录进行追踪,实现数据库结构从测试环境到生产环境的升级,保证测试数据库与生产数据库的同步和一致性,避免项目组中各研发角色对数据库维护造成本地与原始环境的差异性,实现数据库的安全同步升级,有效提升版本升级准确性,可有效避免因数据库版本不一致导致的升级风险现象的发生。
此外,本发明实施例还针对软件升级方法提供了相应的实现装置、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件升级方法的流程示意图;
图2为本发明实施例提供的一个示例性应用场景的框架示意图;
图3为本发明实施例提供的软件升级装置的一种具体实施方式结构图;
图4为本发明实施例提供的电子设备的一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种软件升级方法的流程示意图,本发明实施例可包括以下内容:
S101:根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器。
本实施例分为处于测试环境的测试服务器与处于生产环境的生产服务器两个部分,将测试服务器与生产服务器两个部分进行分开管控。测试服务器采用主干-分支模式管理。根据用户输入的数据源连接测试服务器的测试数据库的数据源,从测试数据库中读取数据库对象数据如表结构数据,例如读取可识别的数据库对象按数据库表格、视图、包package类别等DDL((data definition language))数据,并将这些DDL数据纳入在一个功能模块中。为了便于管理数据,可建立数据DML(data manipulation language)分类,可按照对象数据类型将表数据分为配置数据和业务数据,也即可将表数据进行分类,分为配置数据与业务数据两部分,最终形成远程数据库服务器。其中,DDL是指对数据库对象的操作,如创建create,丢弃drop,选择alter。DML是对数据库对象中包含的数据进行操作,如插入insert,删除delete,更新update。也即本步骤在测试端,将服务器建立为远程服务器端,完成数据库结构的初始化。
S102:建立远程数据库服务器的本地副本,并基于本地副本记录测试数据库的变更信息。
本实施例利用建立副本模式实现对测试服务器的版本管控,记录开发人员对数据库的操作变更。在本步骤中,开发人员可通过拷贝S101的远程数据库服务器形成本地副本,此时,版本初版建立,所有表结构,包括表、视图、存储过程及函数、DML数据等已纳入到版本控制。开发人员可根据业务需求对配置数据或业务数据进行修改。在本地副本修改后,将修改的本地副本提交到该远程数据库服务器,远程数据库服务器基于修改后的本地副本进行数据更新,也即远程服务器数据结构发生变更,这样可实现多个用户同时对数据库进行修改,形成版本控制记录。进一步的,为了保证数据更改一致性,避免多人同时对同一个数据进行修改会导致版本不一致的现象发生,在拷贝远程数据库服务器形成本地副本之后,后续开发人员如要修改某个对象,可先把修改对象加锁,加锁后,其余人员无法修改。在本地修改对象后提交到版本库,形成一个版本号,记录到测试变更日志,提交后对象自动解锁。
S103:根据测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化。
本步骤首次配置生产环境数据库数据源时,需导入测试环境数据库,至于导入测试数据库的哪个版本,可根据用户输入的版本需求也即目标版本进行选择。也即需要预先定义要导入的测试环境数据库版本。在导入测试数据库的目标版本之后,清理DML业务数据,形成生产数据库基版,记录变更日志中的版本号例如版本号V1。后续升级,读取S102的变更信息对应的变更日志的版本号,根据升级指令,升级V1至VN的版本。
S104:通过读取测试数据库的变更信息生成变更版本包,根据变更版本包对生产数据库进行升级操作。
本步骤的生产环境服务器端,利用测试环境服务器中修改生成的变更记录对生产服务器进行升级,也即通过读取测试环境的变更记录,生成变更版本包,对生产数据库进行升级操作,从而实现从测试到生产的数据库变更升级,使得测试数据库到生产数据库的同步,实现数据库的安全同步升级工作,避免因数据库版本不一致导致的升级风险。
在本发明实施例提供的技术方案中,在版本升级发布工作中,通过本地副本实现对数据库演化的过程进行记录,使开发人员对数据库可进行异步操作,便于对数据库修改记录进行追踪,实现数据库结构从测试环境到生产环境的升级,保证测试数据库与生产数据库的同步和一致性,避免项目组中各研发角色对数据库维护造成本地与原始环境的差异性,实现数据库的安全同步升级,有效提升版本升级准确性,有效避免因数据库版本不一致导致的升级风险现象的发生。
为了进一步提高本申请技术方案的实用性和灵活性,提升用户使用体验,基于上述实施例,本申请还支持数据修改和/或版本对比,对于数据修改支持修改当前版本的数据,也支持历史版本的数据修改,如图2所示,可包括下述内容:
对于当前版本的数据修改,当用户提交数据修改请求,数据修改请求中携带修改的数据以及数据库版本号,响应数据修改指令,从版本库中获取最新数据库版本;基于数据修改指令锁定最新数据库版本对应本地副本中相应的目标数据;根据数据修改指令修改目标数据,同时将变更操作记录发送至版本库,以触发自动解锁目标数据,同时更新测试数据库的版本号和版本库的对应数据。
在本实施例中,目标数据为用户想要修改的数据,以修改数据为表结构举例来说,当前版本号为V1,开发人员A修改表结构,先锁定表,修改表结构后,将变更提交到版本库,表对象自动解锁,记录版本号信息V2。开发人员B获取版本库最新版本,此时,版本中已包含了开发人员A修改的内容。B先锁定表对象,保存数据后,将变更提交到版本库,记录版本号信息V3,表对象自动解锁,同时版本库中的对象被更新。
对于历史版本数据的修改,当用户提交历史版本数据修改请求,系统需要先回滚到该历史版本,响应回滚修改指令,对回滚版本号对应的目标数据库版本执行回滚操作,得到回滚版本号的前一个数据库版本;根据回滚修改指令对前一个数据库版本进行相应的数据修改,同时将变更操作记录发送至版本库。
举例来说,开发人员B要回滚修改的V-N记录。选取V-N记录,执行“回滚”操作,表结构回滚到V-N-1版本,将变更提交到版本库后,版本回滚到V-N-1版本。
对于版本对比,当用户提交版本对比请求,版本对比请求会给出进行对比的两个版本的版本号,为了便于描述,称为第一历史版本和第二历史版本,响应版本比对指令,获取待比对的第一历史版本和第二历史版本;根据第一历史版本和第二历史版本的差异数据生成版本比对结果。在具体比对是,可选取某一对象,进行版本比较,查看两个版本前后的修改差异。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1-图2只是一种示意方式,并不代表只能是这样的执行顺序。
在上述实施例中,对于如何执行步骤S104并不做限定,本实施例中给出该步骤一种可选的实施方式,也即通过读取测试数据库的变更信息生成变更版本包,根据变更版本包对生产数据库进行升级操作的过程,可包括如下步骤:
根据用户输入的变更升级版本号,读取从目标版本对应版本号到变更升级版本号之间的所有的变更记录;根据变更记录中发生变化的数据生成变更版本包;删除DML语句进行中的业务数据,保留配置数据;按照变更顺序将DDL语句及筛选后的DML语句进行排序,如可按顺序排序,也可按逆序排序;按照排序后的顺序将变更版本包执行至生产数据库,同时更新数据库版本号为变更升级版本号。
在本实施例中,当完成数据库版本初始化之后,形成生产环境数据库基版,当前生产服务器的数据库版本为V-N。用户输入的变更升级版本号为V-X,读取V-N至V-X中间的变更记录,将变更记录中发生变化的数据导出形成升级版本包,版本包中可包含表,视图,函数及DML信息等。将DML语句进行中的业务数据删除,保留配置数据。按照变更顺序将DDL语句(含表,视图,函数)及筛选后的DML语句进行顺序排序,完成变更版本包筛选。读取版本包,按照排序后的顺序执行到生产环境数据库,此时升级后的数据库版本号变更为V-X。
为了便于后续追溯,在按照排序后的顺序将变更版本包执行至生产数据库之前,还可备份生产环境的生成数据库。
本发明实施例还针对软件升级方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的软件升级装置进行介绍,下文描述的软件升级装置与上文描述的软件升级方法可相互对应参照。
基于功能模块的角度,参见图3,图3为本发明实施例提供的软件升级装置在一种具体实施方式下的结构图,该装置可包括:
远端服务器形成模块301,用于根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器。
副本管理模块302,用于建立远程数据库服务器的本地副本,并基于本地副本记录测试数据库的变更信息。
初始化模块303,用于根据测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化。
版本升级模块304,用于通过读取测试数据库的变更信息生成变更版本包,根据变更版本包对生产数据库进行升级操作。
可选的,在本实施例的一些实施方式中,上述副本管理模块可以包括修改单元、回滚单元和比对单元。
其中,修改单元可用于响应数据修改指令,从版本库中获取最新数据库版本;基于数据修改指令锁定最新数据库版本对应本地副本中相应的目标数据;根据数据修改指令修改目标数据,同时将变更操作记录发送至版本库,以触发自动解锁目标数据,同时更新测试数据库的版本号和版本库的对应数据。
回滚单元可用于响应回滚修改指令,对回滚版本号对应的目标数据库版本执行回滚操作,得到回滚版本号的前一个数据库版本;根据回滚修改指令对前一个数据库版本进行相应的数据修改,同时将变更操作记录发送至版本库。
比对单元可用于响应版本比对指令,获取待比对的第一历史版本和第二历史版本;根据第一历史版本和第二历史版本的差异数据生成版本比对结果。
可选的,在本实施例的另一些实施方式中,上述版本升级模块304可进一步用于:根据用户输入的变更升级版本号,读取从目标版本对应版本号到变更升级版本号之间的所有的变更记录;根据变更记录中发生变化的数据生成变更版本包;删除DML语句进行中的业务数据,保留配置数据;按照变更顺序将DDL语句及筛选后的DML语句进行排序;按照排序后的顺序将变更版本包执行至生产数据库,同时更新数据库版本号为变更升级版本号。
作为本实施例的一些可选的实施方式,上述版本升级模块304例如可包括备份单元,用于备份生产数据库。
可选的,在本实施例的其他一些实施方式中,上述远端服务器形成模块301可进一步用于:根据用户输入的数据源连接测试服务器的测试数据库;从测试数据库中读取数据库对象数据,并按照对象数据类型将表数据分为配置数据和业务数据,形成远程数据库服务器。
本发明实施例软件升级装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在软件版本升级过程中,可以实现数据库的安全同步升级。
上文中提到的软件升级装置是从功能模块的角度描述,进一步的,本申请还提供一种电子设备,是从硬件角度描述。图4为本申请实施例提供的电子设备在一种实施方式下的结构示意图。如图4所示,该电子设备包括存储器40,用于存储计算机程序;处理器41,用于执行计算机程序时实现如上述任一实施例提到的软件升级方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器41还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器40在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器40在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器40还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器40不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行漏洞处理方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的软件升级方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括Windows、Unix、Linux等。数据403可以包括但不限于软件升级结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏42、输入输出接口43、通信接口44或者称为网络接口、电源45以及通信总线46。其中,显示屏42、输入输出接口43比如键盘(Keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口44可选的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线46可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图4中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器47。
本发明实施例所述电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在软件版本升级过程中,可以实现数据库的安全同步升级。
可以理解的是,如果上述实施例中的软件升级方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时如上任意一实施例所述软件升级方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种软件升级方法、装置、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种软件升级方法,其特征在于,包括:
根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器;
建立所述远程数据库服务器的本地副本,并基于所述本地副本记录所述测试数据库的变更信息;
根据所述测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化;
通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作。
2.根据权利要求1所述的软件升级方法,其特征在于,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应数据修改指令,从版本库中获取最新数据库版本;
基于所述数据修改指令锁定所述最新数据库版本对应本地副本中相应的目标数据;
根据所述数据修改指令修改所述目标数据,同时将变更操作记录发送至所述版本库,以触发自动解锁所述目标数据,同时更新所述测试数据库的版本号和所述版本库的对应数据。
3.根据权利要求1所述的软件升级方法,其特征在于,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应回滚修改指令,对回滚版本号对应的目标数据库版本执行回滚操作,得到所述回滚版本号的前一个数据库版本;
根据所述回滚修改指令对所述前一个数据库版本进行相应的数据修改,同时将变更操作记录发送至版本库。
4.根据权利要求1所述的软件升级方法,其特征在于,所述基于所述本地副本记录所述测试数据库的变更信息,包括:
响应版本比对指令,获取待比对的第一历史版本和第二历史版本;
根据所述第一历史版本和所述第二历史版本的差异数据生成版本比对结果。
5.根据权利要求1至4任意一项所述的软件升级方法,其特征在于,所述通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作的过程,包括:
根据用户输入的变更升级版本号,读取从所述目标版本对应版本号到所述变更升级版本号之间的所有的变更记录;
根据所述变更记录中发生变化的数据生成所述变更版本包;
删除DML语句进行中的业务数据,保留配置数据;
按照变更顺序将DDL语句及筛选后的DML语句进行排序;
按照排序后的顺序将所述变更版本包执行至所述生产数据库,同时更新数据库版本号为所述变更升级版本号。
6.根据权利要求5所述的软件升级方法,其特征在于,所述根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器,包括:
根据用户输入的数据源连接测试服务器的测试数据库;
从所述测试数据库中读取数据库对象数据,并按照对象数据类型将表数据分为配置数据和业务数据,形成所述远程数据库服务器。
7.根据权利要求6所述的软件升级方法,其特征在于,所述按照排序后的顺序将所述变更版本包执行至所述生产数据库之前,还包括:
备份所述生产数据库。
8.一种软件升级装置,其特征在于,包括:
远端服务器形成模块,用于根据所连接测试服务器的测试数据库的目标数据形成远程数据库服务器;
副本管理模块,用于建立所述远程数据库服务器的本地副本,并基于所述本地副本记录所述测试数据库的变更信息;
初始化模块,用于根据所述测试服务器中目标版本的测试数据库对生产环境的生产数据库进行初始化;
版本升级模块,用于通过读取所述测试数据库的变更信息生成变更版本包,根据所述变更版本包对所述生产数据库进行升级操作。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7任一项所述软件升级方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述软件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948450.3A CN113741931B (zh) | 2021-08-18 | 2021-08-18 | 软件升级方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948450.3A CN113741931B (zh) | 2021-08-18 | 2021-08-18 | 软件升级方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113741931A true CN113741931A (zh) | 2021-12-03 |
CN113741931B CN113741931B (zh) | 2023-07-25 |
Family
ID=78731719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110948450.3A Active CN113741931B (zh) | 2021-08-18 | 2021-08-18 | 软件升级方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741931B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998054662A1 (en) * | 1997-05-27 | 1998-12-03 | Arkona, Inc. | Method, computer program product, and system for distributing changes made in a data store to remote client copies of the data store |
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN106325902A (zh) * | 2015-06-24 | 2017-01-11 | 中兴通讯股份有限公司 | 数据库软件升级检测方法及装置 |
CN110865829A (zh) * | 2018-08-28 | 2020-03-06 | 北京京东金融科技控股有限公司 | 数据库升级方法、系统、设备及存储介质 |
CN111538519A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 一种版本升级方法及装置 |
CN111708764A (zh) * | 2020-06-22 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种数据库变更版本的控制方法及装置 |
CN112100194A (zh) * | 2020-10-10 | 2020-12-18 | 苏州浪潮智能科技有限公司 | 一种数据库版本管理方法及系统 |
CN112764792A (zh) * | 2021-01-27 | 2021-05-07 | 上海淇玥信息技术有限公司 | 一种关联服务器版本应用升级方法、装置和电子设备 |
-
2021
- 2021-08-18 CN CN202110948450.3A patent/CN113741931B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998054662A1 (en) * | 1997-05-27 | 1998-12-03 | Arkona, Inc. | Method, computer program product, and system for distributing changes made in a data store to remote client copies of the data store |
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN106325902A (zh) * | 2015-06-24 | 2017-01-11 | 中兴通讯股份有限公司 | 数据库软件升级检测方法及装置 |
CN110865829A (zh) * | 2018-08-28 | 2020-03-06 | 北京京东金融科技控股有限公司 | 数据库升级方法、系统、设备及存储介质 |
CN111538519A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 一种版本升级方法及装置 |
CN111708764A (zh) * | 2020-06-22 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种数据库变更版本的控制方法及装置 |
CN112100194A (zh) * | 2020-10-10 | 2020-12-18 | 苏州浪潮智能科技有限公司 | 一种数据库版本管理方法及系统 |
CN112764792A (zh) * | 2021-01-27 | 2021-05-07 | 上海淇玥信息技术有限公司 | 一种关联服务器版本应用升级方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113741931B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797479B2 (en) | Integrating object-based data integration tool with a version control system in centralized and decentralized environments | |
EP3477500A1 (en) | Deploying changes in a multi-tenancy database system | |
CN109146081B (zh) | 一种用于机器学习平台中创建模型项目的方法及装置 | |
US11762654B2 (en) | Processing framework for in-system programming in a containerized environment | |
CN113687912A (zh) | 容器集群管理方法、装置、系统、电子设备及存储介质 | |
US10380009B2 (en) | Code usage map | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
US10877846B2 (en) | Performing a closure merge operation | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
US20170054790A1 (en) | System and Method for Object Compression and State Synchronization | |
US20170371641A1 (en) | Multi-tenant upgrading | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
WO2023087764A1 (zh) | 算法应用元的打包方法及装置、设备、存储介质和计算机程序产品 | |
CN110825395B (zh) | 多插件分层部署系统、设备及介质 | |
JP2023553220A (ja) | マルチインスタンスプロセスのためのプロセスマイニング | |
US11573772B2 (en) | Mechanism for information propagation and resolution in graph-based programming languages | |
CN113741931B (zh) | 软件升级方法、装置、电子设备及可读存储介质 | |
CN114936152A (zh) | 应用测试方法及设备 | |
CN114816470A (zh) | 元数据库的管理方法、装置、电子设备和介质 | |
CN110879871B (zh) | 页面菜单的配置方法及装置 | |
Hunting | The AIMMS outer approximation algorithm for MINLP (using GMP functionality) | |
JP2019144873A (ja) | ブロック線図解析装置 | |
US20230054774A1 (en) | User constrained process mining | |
US20230057746A1 (en) | User constrained process mining | |
CN113741892A (zh) | 一种页面生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |