CN115756554A - 版本升级方法及装置 - Google Patents
版本升级方法及装置 Download PDFInfo
- Publication number
- CN115756554A CN115756554A CN202310103947.4A CN202310103947A CN115756554A CN 115756554 A CN115756554 A CN 115756554A CN 202310103947 A CN202310103947 A CN 202310103947A CN 115756554 A CN115756554 A CN 115756554A
- Authority
- CN
- China
- Prior art keywords
- version
- configuration data
- upgrading
- disc
- data
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及集成开发技术领域,提供一种版本升级方法及装置,方法包括:获取待升级对象对应的目标版本的配置数据和基准版本的配置数据;从所述目标版本的配置数据中,筛选出与所述基准版本的配置数据比对后的增量配置数据,并基于所述增量配置数据确定出盘文件;基于所述出盘文件,将所述待升级对象升级至所述目标版本。本发明获取了基准版本和目标版本比对后的增量配置数据,无需单独编写代码,通过增量配置数据即可获取需要升级的内容,从而实现对待升级对象的快速升级。
Description
技术领域
本发明涉及集成开发技术领域,尤其设计一种版本升级方法及装置。
背景技术
集成开发环境(Integrated Development Environment,IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。IDE版本会定期更新,当IDE版本更新时,客户端也需要及时进行升级。
传统方法常常通过开发代码生成补丁包,从而实现各端的同步升级。然而,该方法每次升级都依靠开发人员编写代码,不利于版本升级的便捷实施。
发明内容
本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提出一种版本升级方法,获取了基准版本和目标版本比对后的增量配置数据,无需单独编写代码,通过增量配置数据即可获取需要升级的内容,从而实现对待升级对象的快速升级。
本发明还提出一种版本升级装置。
本发明还提出一种电子设备。
本发明还提出一种非暂态计算机可读存储介质。
本发明还提出一种计算机程序产品。
根据本发明第一方面实施例的一种版本升级方法,包括:
获取待升级对象对应的目标版本的配置数据和基准版本的配置数据;
从所述目标版本的配置数据中,筛选出与所述基准版本的配置数据比对后的增量配置数据,并基于所述增量配置数据确定出盘文件;
基于所述出盘文件,将所述待升级对象升级至所述目标版本。
根据本发明实施例的版本升级方法,通过比对待升级对象目标版本和基准版本配置数据的方式,找到增量配置数据,并通过增量配置数据创建出目标版本的出盘文件,并基于出盘文件进行升级。本发明无需进行繁琐的代码编写实现升级,而是通过比较配置平台或配置应用得到的目标版本的配置数据与用户处基准版本的配置数据的区别,得到增量配置数据,其变化就可以反映不同版本间功能升级的变化。从而通过出盘文件的方式,就可以便捷地将不同版本的待升级对象升级到目标版本。
根据本发明的一个实施例,所述从所述目标版本的配置数据中筛选出与所述基准版本的配置数据比对后的增量配置数据,包括:
确定从所述基准版本到所述目标版本的跨版本信息;
确定所述跨版本信息中至少一个版本的制盘文件对应的配置数据;
将所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据进行比对,确定所述增量配置数据。
根据本发明的一个实施例,所述将所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据进行比对,确定所述增量配置数据,包括:
获取所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据相比的新增数据和修改数据;
将所述新增数据和所述修改数据确定为所述增量配置数据。
根据本发明的一个实施例,所述获取待升级对象对应的目标版本的配置数据,包括:
基于所述基准版本升级到所述目标版本过程的至少一个版本的配置数据,确定所述待升级对象的目标版本的配置数据;
其中,所述配置数据包括后端配置数据、前端配置数据和数据库数据。
根据本发明的一个实施例,所述基于所述出盘文件,将待升级对象升级至所述目标版本,包括:
对所述出盘文件进行解析,获取升级脚本;
基于所述基准版本的数据库数据,对所述升级脚本进行转换,并基于转换后的升级脚本将所述待升级对象升级至目标版本。
根据本发明的一个实施例,所述基于所述基准版本升级到所述目标版本过程的至少一个版本的配置数据,确定所述待升级对象的目标版本的配置数据,包括:
获取所述基准版本升级到所述目标版本过程的至少一个版本的配置数据中的导出记录表和补丁盘关联表;
基于所述导出记录表,确定与所述基准版本的配置数据相比的差异化配置数据;
基于所述补丁盘关联表,将与所述差异化配置数据关联的配置数据确定为所述待升级对象的目标版本的配置数据。
根据本发明的一个实施例,所述待升级对象包括:开发平台和/或应用程序。
根据本发明第二方面实施例的一种版本升级装置,包括:
制盘模块,用于获取待升级对象对应的目标版本的配置数据和基准版本的配置数据;
出盘模块,用于从所述目标版本的配置数据中,筛选出与所述基准版本的配置数据比对后的增量配置数据,并基于所述增量配置数据确定出盘文件;
装盘模块,用于基于所述出盘文件,将所述待升级对象升级至所述目标版本。
根据本发明实施例的版本升级装置,制盘模块通过比对目标版本和基准版本配置数据的方式,找到增量配置数据,出盘模块通过增量配置数据创建出目标版本的出盘文件,装盘模块通过出盘文件对待升级对象进行升级。本发明无需进行繁琐的代码编写实现升级,而是通过比较配置平台或配置应用得到的目标版本的配置数据与用户处基准版本的配置数据的区别,得到增量配置数据,其变化就可以反映不同版本间功能升级的变化。从而通过出盘文件的方式,就可以便捷地将不同版本的待升级对象升级到目标版本。
根据本发明第三方面实施例的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述版本升级方法的步骤。
根据本发明第四方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述版本升级方法的步骤。
本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:由于客户现场经常需要一次性升级多个补丁版本,而本发明中目标版本的配置数据中包含至少一个版本的制盘文件,因此可以解决跨版本升级问题。
进一步的,通过获取新增数据和修改数据可以方便的锁定不同版本间升级的关联文件,从而在简化实施难度的情况下,对所需功能进行快速升级。
更进一步的,在客户现场进行装盘时,本发明可以根据用户现场的数据库信息获取用户的使用习惯,从而对升级脚本进行转换,避免覆盖用户已经修改的脚本,以实现适应于用户习惯的升级。
再进一步的,本发明通过增量配置数据,可以对客户现场的标准应用进行个性化升级。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的版本升级方法的流程示意图;
图2是本发明实施例提供的判断修改数据的流程示意图;
图3是本发明实施例提供的版本升级的业务流程示意图;
图4是本发明实施例提供的版本升级装置的结构示意图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
由于IDE具备跨工具的快速设置和标准化等特点,因此可以提高软件开发的效率。IDE的版本经常迭代,需要定期更新。在网络通畅时,常通过补丁包的形式进行版本升级,然而在网络受阻的情况下,如何解决版本更新成为了亟待解决的问题。基于此,如图1所示,本发明实施例公开了一种版本升级方法,至少包括如下步骤:
步骤101、获取待升级对象的目标版本的配置数据和基准版本的配置数据;
步骤102、从目标版本的配置数据中,筛选出与基准版本的配置数据比对后的增量配置数据,并基于增量配置数据确定出盘文件;
步骤103、基于出盘文件,将待升级对象升级至目标版本。
针对步骤101,需要说明的是,基准版本是客户现场已安装的历史出盘版本,该版本的配置数据里有记录IDE的当前版本信息和应用程序的当前版本信息。目标版本是客户期望升级的版本,目标版本的配置数据中往往包括IDE的目标版本信息和标准应用的目标版本信息,标准应用是开发端发布的行业适用性较高的通用应用模板。用户选择待升级对象时,可以选择IDE,也可以选择一个或多个应用,选择待升级对象为应用时,可选择应用的全部或部分页面进行出盘。
针对步骤102,需要说明的是,由于客户可能需要跨版本升级,也可能需要升级多个应用。目标版本和基准版本之间可能存在多个版本,因此,若能针对基准版本和目标版本的区别精准定位出需要升级的功能,则不需要在版本更新时对整个版本进行重装。增量配置数据是指目标版本的制盘文件中相比于客户现场的基准版本,不同的配置数据,增量配置数据指示了每次升级的方向。出盘文件是指通过在用户现场进行比对后得到的升级至目标版本所需的增量配置数据。
IDE每个版本发布时,需准备好出盘文件并在客户现场进行部署安装,可将IDE升级到新的版本。标准应用在首次安装后,可能会进行迭代,此时就需要获取标准应用的迭代内容制作得到出盘文件,可以把客户现场的标准应用进行升级。
针对步骤103,需要说明的,得到了出盘文件后到客户现场部署时,需要把出盘文件配置和运行起来,如果是IDE升级,建议选择夜晚或周末没有人使用的时候进行升级,升级时需要对现有系统进行停机处理。例如,停止IDE的微服务。同时需要对用户端的数据库数据(包括IDE和应用)进行全量备份,当升级出现问题,可以用备份文件恢复原有状态。在安装前进行备份包括:对IDE及应用进行备份,具体为对IDE数据库的备份,以及业务数据库的备份。备份方式采用全库备份所有建库建表脚本及数据库数据。
另外,需要说明的是,本发明实施例版本升级的过程实际对应安装盘升级的问题,即制作安装盘,具体包括准备、制盘、出盘和装盘等几个阶段,如图3所示。准备阶段是指在桌面云开发IDE的软件,并编译前后端文件、制作IDE数据库脚本、并给GIT代码打TAG的过程。制盘阶段分为IDE制盘和应用制盘,用于制作单个版本的IDE或应用的补丁盘的过程,得到制盘文件,对应了目标版本原始的配置数据。出盘阶段用于IDE或应用从客户现场已部署版本的基准版本升级到目标版本时,从制盘文件中筛选出一个版本或者多个版本的关联文件进行出盘的过程。装盘阶段用于将出盘文件部署到客户现场,对客户软件进行升级。IDE每个版本发布时,需准备好升级文件和脚本。在客户现场进行部署安装,可将IDE升级到新的版本。
本发明实施例的版本升级方法,通过比对目标版本和基准版本配置数据的方式,找到增量配置数据,并通过增量配置数据创建出目标版本的出盘文件,并基于出盘文件进行升级。本发明实施例无需进行繁琐的代码编写实现升级,而是通过比较配置平台或配置应用得到的目标版本的配置数据与用户处基准版本的配置数据的区别,得到增量配置数据。其变化就可以反映不同版本间功能升级的变化。从而通过出盘文件的方式,就可以便捷地将不同版本的待升级对象升级到目标版本。
可以理解的是,待升级对象包括:开发平台和/或应用程序。
需要说明的是,开发平台即为IDE平台,用于配置各项应用并提供配置的环境。开发平台中还包括流程平台,用于配置各项在IDE平台上执行的业务的流程模板,可以在源环境进行迁出,在目标环境进行迁入。应用程序是指基于IDE平台设计的标准应用,标准应用由开发端配置发布的对于某一行业适用性较高的通用应用模板。标准应用在首次安装后,可能会进行迭代,将迭代内容制作成补丁盘,可以对客户现场的标准应用进行升级。
可以理解的是,从目标版本的配置数据中筛选出与基准版本的配置数据比对后的增量配置数据,包括:
确定从基准版本和目标版本之间的跨版本信息;
基于跨版本信息,确定跨版本信息中至少一个版本的制盘文件对应的配置数据;
将至少一个版本的制盘文件对应的配置数据与基准版本的配置数据进行比对,确定增量配置数据。
需要说明的是,跨版本升级是指客户现场软件一次性升级多个补丁版本,跨版本升级的适用场景包括:1、客户现场IDE或应用软件发现有BUG,该BUG在后面的某个版本已经修复。2、IDE或标准应用有功能升级,客户准备连续升级几个小版本,获得新的功能增强。当客户端版本需要补丁升级时,需要根据客户现场环境待升级对象的基准版本,以及目标版本来进行出盘。此时需要将从客户现场环境基准版本到目标版本之间的跨版本信息的所有补丁对应的配置数据都导出来,得到增量配置数据对应的出盘文件。在客户现场装盘时,按照低版本到高版本的顺序逐个执行升级。
具体的,本发明实施例中,为了支持跨版本升级,本发明实施例中,制盘文件包括两种,一种是每隔几个大版本(一个季度或半年)需要准备一次IDE全量的安装盘,另一种是每个月度版本需要准备IDE的补丁盘。
因此,本实施例升级的版本就包括了正式升级版本和补丁升级版本,在和用户基准版本进行比对时,第一种情况是基准版本的正式升级版本并非目标版本,即用户还未安装目标版本的安装盘,既需要跨正式升级版本又需要补丁升级版本,跨版本信息中包含安装盘和补丁盘的信息。此时目标版本的安装盘没有全量的安装包,那么需要找到该版本之前的版本的安装盘,以及后续版本的补丁盘。然后在客户现场安装补丁文件时,需先执行之前版本安装盘出盘文件的脚本,在按从低到高版本逐个执行补丁脚本,来实现该版本安装盘的安装。
第二种情况是基准版本的正式升级版本是目标版本,即当客户现场已经安装目标版本的安装盘,只需要跨补丁升级版本,跨版本信息中仅需补丁盘的信息。此时只需要需要跨版本升级时,需要找到基准版本到目标版本之间的所有补丁盘并导出出盘文件。然后在客户现场安装补丁文件时,需按从低到高版本逐个执行补丁脚本,来实现新版本的升级。
作为示例的,待升级对象为IDE,目标版本为V3时,获取IDE V3的安装盘可以采取以下方法:
IDE V3安装盘=IDE BASE1安装盘+IDE补丁盘2+IDE补丁盘3。
待升级对象为IDE,目标版本为Vn+1时,获取IDE Vn+1的安装盘可以采取以下逐级升级方法:
IDE Vn+1安装盘=IDE BASEV1安装盘+IDE补丁盘2+IDE补丁盘3+...+IDE补丁盘n+IDE补丁盘(n+1)。或者可以采取跨版本的升级方法:IDE Vn+1安装盘=IDE BASEn+IDE补丁盘(n+1)。
其中,安装盘表示正式升级版本,补丁盘表示补丁升级版本。
待升级对象为应用a,目标版本为Vm+1时,获取应用a Vm+1安装盘可以采取以下逐级升级方法:应用a Vm+1安装盘=应用aBASE1安装盘+应用a2补丁盘+应用a3补丁盘+...+应用am补丁盘+应用a(m+1)补丁盘。或者可以采取跨版本的升级方法:应用a Vm+1安装盘=应用aBASEm安装盘+应用a(m+1)补丁盘。
另外,需要说明的是,当补丁盘安装过程中出现异常,或安装后系统出现不可用,此时如果不能在线修复,则需对系统进行回退,将系统恢复到安装补丁盘之前的状态。数据库回退的方案采取根据IDE和业务数据库安装前的全量备份脚本,对IDE及业务数据库全部删除后导入备份脚本重建数据库的方式进行。微服务采用重新部署旧版本的jar包。前端dist采用重新部署旧版本dist包的方式进行。
可以理解的是,获取目标版本的配置数据,包括:
基于基准版本升级到目标版本过程的至少一个版本的配置数据,确定待升级对象的目标版本的配置数据;
其中,配置数据包括后端配置数据、前端配置数据和数据库数据。
需要说明的是,本发明实施例中通过获取每个版本的配置数据,即获得每个版本的制盘文件。补丁盘制盘的过程包括两个步骤:第一步录入基础信息,第二步上传资源文件。
作为示例的,IDE补丁盘的基础信息包括补丁盘制盘名称、IDE版本、GIT TAG标签名、GIT分支名、IDE上一个版本、备注等信息。资源文件包括后端jar包、前端dist文件、数据库DDL脚本、数据库DML脚本以及readme文件。其中,后端jar包为部署带升级对象后端微服务所需的jar包,前端dist文件为部署IDE前端所需的dist编译文件,数据库DDL脚本、数据库DML脚本是建库建表所需,readme文件用于记录该版本针对上一个版本的功能改造清单。最终得到每个版本的IDE补丁盘的制盘详情包括本次制盘的基础信息及文件清单。文件清单以列表形式展示文件名称、文件类型等信息。流程平台补丁盘的制盘过程与IDE补丁盘类似,基于流程平台配置的流程模板,可以在源环境进行迁出,在目标环境进行迁入。
作为示例的,应用补丁盘的基础信息用于展示操作人、补丁盘制盘名称、操作时间、状态、依赖IDE版本、补丁盘跟踪号、描述等基础信息。应用补丁盘的文件清单用于展示本次IDE制盘时上传的资源文件。补丁盘日志记录用于记录用户选择应用、模块、页面时,从IDE数据库获取应用配置数据的记录,从IDE导出一条配置数据,形成一条日志记录。日志记录展示应用编码、表名、业务数据主键ID、数据更新时间、导出时间、补丁盘跟踪号等信息。最终得到每个版本的应用补丁盘的应用制盘详情,包括某次制盘的基础信息及应用补丁盘日志记录。
其中,应用编码是指用户选择的应用对应的应用编码。表名是指导出应用配置数据所在数据表的表名。业务数据主键ID是指导出某行配置数据中,该行记录的主键ID。数据更新时间是指导出某行配置数据中,该行记录的数据更新时间。导出时间是在用户应用制盘时点击确定按钮时的时间。每次制作应用补丁盘时,系统会产生一个补丁盘跟踪号,用于唯一标识此次记录。
可以理解的是,将至少一个版本的制盘文件对应的配置数据与基准版本的配置数据进行比对,确定增量配置数据,包括:
获取至少一个版本的制盘文件对应的配置数据与基准版本的配置数据相比的新增数据和修改数据;
基于新增数据和修改数据,确定将增量配置数据。
需要说明的是,本发明实施例中至少一个版本的制盘文件对应的配置数据包括各种后端配置数据、前端配置数据和数据库数据,在与基准版本的配置数据进行差异对比时,可以采用逐一对比的方法将每条记录的信息进行逐一比对,或者还可以通过注意力机制对重点信息进行比对放弃重要的差异信息。同时,本发明实施例还提出了一种比对方式,具体的,基于基准版本升级到目标版本过程的至少一个版本的配置数据,确定待升级对象的目标版本的配置数据,包括:
获取基准版本升级到目标版本过程的至少一个版本的配置数据中的导出记录表和补丁盘关联表;
基于导出记录表,确定与基准版本的配置数据相比的差异化配置数据;
基于补丁盘关联表,将与差异化配置数据关联的配置数据确定为待升级对象的目标版本的配置数据。
需要说明的是,差异化配置数据即为当前版本与基础版本相比由导出记录表所记录的各版本差异。进行差异化比对的依据是每个版本的制盘文件的配置数据中的导出记录表以及补丁盘关联表,导出记录表中记录了每个版本本身和之前版本的出盘文件的详细内容,导出记录表包括安装盘导出记录表和补丁盘导出记录表。而补丁盘关联表中包括多个层级的关联子表,如果一级关联表下还有二次关联表,需要根据一级关联表中数据行的ID在二级关联表中进行查询。存在多级关联时以此类推,逐级进行过滤查询,可以找到所有配置信息的关联数据,保证所有差异化配置信息不会被漏查。基于导出记录表可以找到新增和修改的配置信息,而补丁盘关联表可以基于新增和修改的信息查询得到关联的新增数据和修改数据。因此,基于安装盘导出记录表和补丁盘导出记录表,可以获取待升级对象的海量配置数据中需要出盘的增量配置数据。
导出记录表该记录表是行级的,即导出的任何一行数据都要在导出记录表中进行记录。考虑该表长期运行后,数据量会比较大,可对表名、业务数据主键ID和安装盘跟踪号等列添加联合索引,优化性能。
作为示例的,待升级对象为应用程序时,获得应用程序的出盘文件时,出盘的目标是把应用配置导出成SQL脚本。由于应用出盘时开发人员可以选择应用及其下的模块和页面进行自定义,所以出盘时,分应用、模块、页面三个维度出盘。此时需要通过补丁盘关联表,找到配置数据中和应用、模块、页面关联的数据。而为了从这些关联表中找到此次跟此次选择的应用、模块、页面关联的数据,就需要依据导出记录表进行对比,包括:
1.根据界面上对页面的勾选结果,得到页面ID。
2.用页面ID在一级页面关联表中进行数据过滤。
3.获取每行过滤数据的ID,用该ID在安装盘导出记录表和补丁盘导出记录表找关联数据的最后更新时间,该时间和用当前行的最后更新时间对比,如果判断时间有修改过则导出该行数据。
4.以上数据导出后,用页面ID在二级关联表中查找关联数据,得到每行数据的ID,再用该ID去安装盘导出记录表和补丁盘导出记录表查找关联数据,通过最后更新时间的比较决定是否导出该行数据。
5.用同样算法逐级导出和页面关联的数据,直至遍历完补丁盘关联表。
同样的,根据用户在界面对应用的勾选结果,得到应用ID。用跟页面相同的算法导出关联数据。根据用户在界面对模块的勾选结果,得到模块ID。用跟页面相同的算法导出关联数据。
所有的新增或修改的配置信息对应的关联数据,即为所求的增量配置数据。
具体的,如图2所示,公开了一种判断修改数据的流程,包括:
步骤201、获取当前数据行的主键ID;
步骤202、在之前所有版本的补丁盘记录中查询当前主键ID;
步骤203、判断补丁盘记录中是否能找到关联数据;
如果补丁盘记录能查到该主键ID的关联数据,则从获取补丁盘记录的所有数据中最大的最后更新时间,并获取当前数据行的更新时间;
步骤204、对补丁盘记录最大更新时间和当前数据行的更新时间进行对比,当前数据行的更新时间更大则说明有修改,需要导出该行数据;否则说明数据没有修改过,不导出当前行数据;
如果补丁盘记录查不到该主键ID的关联数据,则到安装盘记录表根据主键ID进行查询关联数据;
步骤205、判断安装盘记录中是否能找到关联数据;
如果安装盘记录中能找到该主键ID的记录,获取安装盘记录中数据的最后更新时间,并获取当前数据行的更新时间;
步骤206、对安装盘记录的最后更新时间和当前数据行的更新时间进行对比,当前数据行的更新时间更大则说明有修改,需要导出该行数据;否则说明数据没有修改过,不导出当前行数据;
如果安装盘记录表不能找到该主键ID的记录,则说明该数据之前没有导出过,则可以认为该条数据属于新增数据,需要导出这条数据。
可以理解的是,基于出盘文件,将待升级对象升级至目标版本,包括:
基于出盘文件,获取升级脚本;
基于基准版本的数据库数据,对升级脚本进行转换,并基于转换后的升级脚本将待升级对象升级至目标版本。
需要说明的是,补丁盘出盘阶段是根据客户环境目前的基准版本和目标版本进行对比,从制盘阶段提取相关文件制作成出盘文件的过程。如果本次补丁盘涉及到IDE数据库,则基于出盘文件先进行IDE数据库升级,完成IDE数据库升级后,可以开始升级应用。
由于应用程序的出盘文件导出的内容是多行insert语句。每一行代表的是根据用户选择的页面,且针对上次补丁盘有更改的数据行。这些导出的insert脚本,在客户现场导入时会要用到,但是并不会直接导入到数据库,而是会解析每一行insert脚本,并转化为一段存储过程后才会在客户现场的数据库去执行。由于标准产品安装至客户现场后,为了满足业务需求,客户会对标准产品进行修改。同时标准产品也会进行迭代更新,客户希望能够同时用到标准产品的增强功能时,就会涉及到双方修改到同样的内容,以至无法升级的情况。
基于上述需求,本发明实施例通过基准版本的数据库数据,获知客户现场对于哪些数据进行了修改,然后基于客户端修改,结合判断客户现场对应数据的状态来更新每一行语句,对升级脚本进行转换。设置升级引擎,升级引擎能连接客户现场的数据库,同时能读取应用配置数据的补丁脚本,该升级引擎专门负责逻辑判断、脚本转换、脚本执行等功能。
需要说明的是,升级引擎的功能包括:
如果补丁某行数据是新增的,则直接在客户数据库执行insert脚本。
如果补丁某行数据是存在的,需要先判断该行数据是否被禁用(或隐藏),如果禁用(或隐藏)则不做升级。如果是启用的则需要把insert语句转换成update语句,update语句不更新禁用(或隐藏)字段的值,只更新其他字段的值,然后在客户数据库执行update语句。
另外,为了更加满足客户定制功能的需求,能让客户定制时能修改页面上的字段名字。标准产品补丁升级时,不能覆盖掉客户修改的字段名字。由于页面字段名字时存储在数据库的视图模型json里的,所以升级时需要把客户定制的视图模型json和补丁中对应的视图模型json进行对比。升级引擎程序需要把这两个json到内存中转为java对象,然后两个java对象进行对比,若用户有修改则不执行该条补丁的脚本。
需要说明的是,两种待升级对象最终得到的补丁盘内容如表1所示:
表1
下面对本发明提供的版本升级装置进行描述,下文描述的版本升级装置与上文描述应用在设计端的版本升级方法可相互对应参照。如图4所示,版本升级装置包括:
制盘模块301,用于获取目标版本的配置数据和基准版本的配置数据;
出盘模块302,用于从目标版本的配置数据中,筛选出与基准版本的配置数据比对后的增量配置数据,并基于增量配置数据确定出盘文件;
装盘模块303,用于基于出盘文件,将待升级对象升级至目标版本。
根据本发明实施例的版本升级装置,制盘模块通过比对目标版本和基准版本配置数据的方式,找到增量配置数据,出盘模块通过增量配置数据创建出目标版本的出盘文件,装盘模块通过出盘文件对待升级对象进行升级。本发明无需进行繁琐的代码编写实现升级,而是通过比较配置平台或配置应用得到的目标版本的配置数据与用户处基准版本的配置数据的区别,得到增量配置数据,其变化就可以反映不同版本间功能升级的变化。从而通过出盘文件的方式,就可以便捷地将不同版本的待升级对象升级到目标版本。
可以理解的是,从目标版本的配置数据中筛选出与基准版本的配置数据比对后的增量配置数据,包括:
确定从基准版本和目标版本之间的跨版本信息;
基于跨版本信息,确定跨版本信息中至少一个版本的制盘文件对应的配置数据;
将至少一个版本的制盘文件对应的配置数据与基准版本的配置数据进行比对,确定增量配置数据。
可以理解的是,将至少一个版本的制盘文件对应的配置数据与基准版本的配置数据进行比对,确定增量配置数据,包括:
获取至少一个版本的制盘文件对应的配置数据与基准版本的配置数据相比的新增数据和修改数据;
基于新增数据和修改数据,确定将增量配置数据。
可以理解的是,获取目标版本的配置数据,包括:
基于基准版本升级到目标版本过程的至少一个版本的配置数据,确定待升级对象的目标版本的配置数据;
其中,配置数据包括后端配置数据、前端配置数据和数据库数据。
可以理解的是,基于出盘文件,将待升级对象升级至目标版本,包括:
基于出盘文件,获取升级脚本;
基于基准版本的数据库数据,对升级脚本进行转换,并基于转换后的升级脚本将待升级对象升级至目标版本。
可以理解的是,基于基准版本升级到目标版本过程的至少一个版本的配置数据,确定待升级对象的目标版本的配置数据,包括:
获取基准版本升级到目标版本过程的至少一个版本的配置数据中的导出记录表和补丁盘关联表;
基于导出记录表,确定与基准版本的配置数据相比的差异化配置数据;
基于补丁盘关联表,将与差异化配置数据关联的配置数据确定为待升级对象的目标版本的配置数据。
可以理解的是,待升级对象包括:开发平台和/或应用程序。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:
获取目标版本的配置数据和基准版本的配置数据;
从目标版本的配置数据中,筛选出与基准版本的配置数据比对后的增量配置数据,并基于增量配置数据确定出盘文件;
基于出盘文件,将待升级对象升级至目标版本。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取目标版本的配置数据和基准版本的配置数据;
从目标版本的配置数据中,筛选出与基准版本的配置数据比对后的增量配置数据,并基于增量配置数据确定出盘文件;
基于出盘文件,将待升级对象升级至目标版本。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
获取目标版本的配置数据和基准版本的配置数据;
从目标版本的配置数据中,筛选出与基准版本的配置数据比对后的增量配置数据,并基于增量配置数据确定出盘文件;
基于出盘文件,将待升级对象升级至目标版本。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是,以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的范围中。
Claims (10)
1.一种版本升级方法,其特征在于,包括:
获取待升级对象对应的目标版本的配置数据和基准版本的配置数据;
从所述目标版本的配置数据中,筛选出与所述基准版本的配置数据比对后的增量配置数据,并基于所述增量配置数据确定出盘文件;
基于所述出盘文件,将所述待升级对象升级至所述目标版本。
2.根据权利要求1所述的版本升级方法,其特征在于,所述从所述目标版本的配置数据中筛选出与所述基准版本的配置数据比对后的增量配置数据,包括:
确定从所述基准版本到所述目标版本的跨版本信息;
确定所述跨版本信息中至少一个版本的制盘文件对应的配置数据;
将所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据进行比对,确定所述增量配置数据。
3.根据权利要求2所述的版本升级方法,其特征在于,所述将所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据进行比对,确定所述增量配置数据,包括:
获取所述至少一个版本的制盘文件对应的配置数据与所述基准版本的配置数据相比的新增数据和修改数据;
将所述新增数据和所述修改数据确定为所述增量配置数据。
4.根据权利要求1至3任一所述的版本升级方法,其特征在于,所述获取待升级对象对应的目标版本的配置数据,包括:
基于所述基准版本升级到所述目标版本过程的至少一个版本的配置数据,确定所述待升级对象的目标版本的配置数据;
其中,所述配置数据包括后端配置数据、前端配置数据和数据库数据。
5.根据权利要求4所述的版本升级方法,其特征在于,所述基于所述出盘文件,将所述待升级对象升级至所述目标版本,包括:
对所述出盘文件进行解析,获取升级脚本;
基于所述基准版本的数据库数据,对所述升级脚本进行转换,并基于转换后的升级脚本将所述待升级对象升级至目标版本。
6.根据权利要求4所述的版本升级方法,其特征在于,所述基于所述基准版本升级到所述目标版本过程的至少一个版本的配置数据,确定所述待升级对象的目标版本的配置数据,包括:
获取所述基准版本升级到所述目标版本过程的至少一个版本的配置数据中的导出记录表和补丁盘关联表;
基于所述导出记录表,确定与所述基准版本的配置数据相比的差异化配置数据;
基于所述补丁盘关联表,将与所述差异化配置数据关联的配置数据确定为所述待升级对象的目标版本的配置数据。
7.根据权利要求1至3任一所述的版本升级方法,其特征在于,所述待升级对象包括:开发平台和/或应用程序。
8.一种版本升级装置,其特征在于,包括:
制盘模块,用于获取待升级对象对应的目标版本的配置数据和基准版本的配置数据;
出盘模块,用于从所述目标版本的配置数据中,筛选出与所述基准版本的配置数据比对后的增量配置数据,并基于所述增量配置数据确定出盘文件;
装盘模块,用于基于所述出盘文件,将所述待升级对象升级至所述目标版本。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述版本升级方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述版本升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310103947.4A CN115756554B (zh) | 2023-02-13 | 2023-02-13 | 版本升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310103947.4A CN115756554B (zh) | 2023-02-13 | 2023-02-13 | 版本升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115756554A true CN115756554A (zh) | 2023-03-07 |
CN115756554B CN115756554B (zh) | 2023-06-30 |
Family
ID=85348984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310103947.4A Active CN115756554B (zh) | 2023-02-13 | 2023-02-13 | 版本升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756554B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170460A (zh) * | 2017-12-15 | 2018-06-15 | 杭州中天微系统有限公司 | 一种嵌入式系统增量升级的方法及装置 |
CN112416406A (zh) * | 2020-11-30 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 终端设备升级方法、装置、终端设备和介质 |
CN112988280A (zh) * | 2021-04-22 | 2021-06-18 | 马上消费金融股份有限公司 | 一种配置数据处理方法及装置 |
CN112994955A (zh) * | 2021-04-21 | 2021-06-18 | 恒生电子股份有限公司 | 升级包发送管理方法、增量升级包制备方法及相关装置 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
CN114785685A (zh) * | 2022-04-12 | 2022-07-22 | 北京奕斯伟计算技术有限公司 | 软件差分升级方法、装置、电子设备及可读存储介质 |
CN114895943A (zh) * | 2022-05-30 | 2022-08-12 | 山东浪潮科学研究院有限公司 | 一种应用配置增量分发与自动升级的实现方法与装置 |
-
2023
- 2023-02-13 CN CN202310103947.4A patent/CN115756554B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170460A (zh) * | 2017-12-15 | 2018-06-15 | 杭州中天微系统有限公司 | 一种嵌入式系统增量升级的方法及装置 |
CN112416406A (zh) * | 2020-11-30 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 终端设备升级方法、装置、终端设备和介质 |
CN112994955A (zh) * | 2021-04-21 | 2021-06-18 | 恒生电子股份有限公司 | 升级包发送管理方法、增量升级包制备方法及相关装置 |
CN112988280A (zh) * | 2021-04-22 | 2021-06-18 | 马上消费金融股份有限公司 | 一种配置数据处理方法及装置 |
CN114785685A (zh) * | 2022-04-12 | 2022-07-22 | 北京奕斯伟计算技术有限公司 | 软件差分升级方法、装置、电子设备及可读存储介质 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
CN114895943A (zh) * | 2022-05-30 | 2022-08-12 | 山东浪潮科学研究院有限公司 | 一种应用配置增量分发与自动升级的实现方法与装置 |
Non-Patent Citations (1)
Title |
---|
黄林;杨军;徐亮亮;: "基于微服务构建模型的应用系统增量更新算法", 计算机与现代化 * |
Also Published As
Publication number | Publication date |
---|---|
CN115756554B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922067B1 (en) | System and method for installing, updating and uninstalling applications | |
US6601236B1 (en) | Cross platform program installation on drives using drive object | |
US10430204B2 (en) | System and method for cloud provisioning and application deployment | |
US8010962B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
CN103955363B (zh) | 一种程序升级安装包的制作方法 | |
US8261253B2 (en) | Method for restoring software applications on desktop computers | |
JP5007046B2 (ja) | コンポーネントベースのソフトウェア・プロダクトの保守 | |
US6374401B1 (en) | System, method, and program for updating registry objects with a cross-platform installation program | |
US7562357B2 (en) | Relational database schema version management | |
CA2723933C (en) | Methods and systems for developing, debugging, and executing data integration applications | |
US7774772B2 (en) | Method and apparatus to perform an application software migration | |
EP2562641B1 (en) | Software application porting system | |
US20040250247A1 (en) | Extensible software installation and configuration framework | |
US20060020937A1 (en) | System and method for extraction and creation of application meta-information within a software application repository | |
CN106599167B (zh) | 一种支持增量升级数据库的系统和方法 | |
KR20050077422A (ko) | 소프트웨어 버전 자동 관리 시스템 및 버전 관리 방법 | |
US20050010915A1 (en) | Network-based server code auto upgrade method and system | |
US10963227B2 (en) | Technique for transforming a standard messaging component to a customized component | |
AU2019371545B9 (en) | Management system, acquisition device and management method | |
CN102054041A (zh) | 元数据升级方法和系统 | |
CN115756554A (zh) | 版本升级方法及装置 | |
CN115857965A (zh) | 传统本地部署应用的容器插件 | |
CN118151964A (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 |