数据迁移的制作方法

文档序号:14677200发布日期:2018-06-12 21:39阅读:245来源:国知局
数据迁移的制作方法

本发明公开一种数据迁移。



背景技术:

当将客户环境中的所部署软件系统升级为新版本的复杂数据时,迁移是常见的且应针对现有客户数据支持迁移。如果数据库的基础模式随升级成新软件版本的部分而变更,那么这些迁移可能变得极复杂。例如Liquibase的第三方数据库修订工具(其还可被称作数据库迁移或数据库重构工具)已经具有调用脚本处理和例如Java代码的可执行代码以操纵数据的能力。然而,此类解决方案需要针对每一迁移编写自定义代码且此自定义代码常常重复现有业务逻辑。因此,实施此类工具可能在技术上复杂、耗时,且涉及风险。



技术实现要素:

本文中的各种实施例各自包含用于例如当将数据库从一种形式迁移到下一种形式时和可在软件系统版本迁移时执行的数据迁移的系统、方法和软件中的至少一个。

呈方法形式的一个实例实施例包含载入数据库迁移脚本,所述数据库迁移脚本包含在软件系统升级之前来自所述软件系统的先前类别和在所述软件系统进行所述升级之后来自所述软件系统的新类别。所述方法接着通过调用所述先前类别的方法以将数据库数据从受所述数据库迁移脚本影响的数据库表复制到存储器装置且执行所述数据库迁移脚本而继续进行。所述方法接着调用所述新类别的方法以将所述数据库数据从所述存储器装置复制回到所述数据库。

另一方法实施例包含根据类别的第一版本将数据从数据库复制到存储器装置和执行变更数据库表的数据库变更脚本,所述数据从所述数据库表复制。所述方法接着可根据所述类别的第二版本将数据从所述存储器装置复制回到所述数据库。

另一实施例以系统形式呈现。此类实施例的系统包含处理器、存储器装置、辅助存储器装置和存储在所述至少一个存储器装置上可由所述处理器执行以执行数据处理活动的指令。一些此类实施例的所述数据处理活动包含根据类别的第一版本将数据从数据库复制到所述辅助存储器装置和执行变更数据库表的数据库变更脚本,所述数据从所述数据库表复制。所述数据处理活动接着可根据所述类别的第二版本将数据从所述辅助存储器装置复制回到所述数据库。

根据本发明的第一方面,提供一种方法,其包含:载入数据库迁移脚本,所述数据库迁移脚本包含在软件系统升级之前来自所述软件系统的先前类别,和在所述软件系统进行所述升级之后来自所述软件系统的新类别;调用所述先前类别的方法以将数据库数据从受所述数据库迁移脚本影响的数据库表复制到存储器装置;执行所述数据库迁移脚本;以及调用所述新类别的方法以将所述数据库数据从所述存储器装置复制回到所述数据库。

视需要,可在调用所述先前类别的所述方法之前将所述先前类别载入到存储器中以用于执行其所述方法,且接着在将所述数据库数据复制到所述存储器装置之后卸载所述先前类别;且在所述执行所述数据库迁移脚本之后且在调用所述新类别的所述方法之前将所述新类别载入到存储器中以用于执行其所述方法。

视需要,所述数据库迁移脚本、所述先前类别和所述新类别可一起绑定为可由数据库迁移工具执行的数据库迁移计划。

视需要,所述数据库迁移工具可提供可供执行所述先前类别和所述新类别的计算环境。

视需要,数据库迁移工具可用于多个计算平台中的每个,所述多个计算平台中的每个能够执行同一数据库迁移计划。

视需要,所述方法可进一步包含:在执行所述数据库迁移计划之前停止执行所述软件系统;发出数据库迁移工具命令以开始执行所述数据库迁移计划;以及重新开始执行所述软件系统。

视需要,所述方法可进一步包含:修改针对存储于所述数据库中的数据执行的所述软件系统。

根据本发明的第二方面,提供一种方法,其包含:根据类别的第一版本将数据从数据库复制到存储器装置;执行变更数据库表的数据库变更脚本,所述数据从所述数据库表复制;以及根据所述类别的第二版本将数据从根据所述存储器装置复制回到所述数据库。

视需要,所述类别的所述第一版本和所述第二版本可以是针对从所述数据库复制且复制到所述数据库的所述数据执行的软件应用程序的类别;可在通过所述执行所述数据库变更脚本来对所述数据库表作出变更之前根据所述数据库定制所述类别的所述第一版本;且可在通过所述执行所述数据库变更脚本来对所述数据库表作出变更之后根据所述数据库定制所述类别的所述第二版本。

视需要,可在调用所述类别的所述第一版本的所述方法之前将所述类别的所述第一版本载入到存储器中以用于执行其所述方法,且接着可在将所述数据库数据复制到所述存储器装置之后卸载所述第一类别;且可在所述执行所述数据库变更脚本之后且在调用所述类别的所述第二版本的所述方法之前,将所述类别的所述第二版本载入到存储器中以用于执行其所述方法。

视需要,所述数据库变更脚本、所述类别的所述第一版本和所述类别的所述第二版本可一起绑定为可由数据库变更工具执行的数据库变更计划。

视需要,所述数据库变更工具可提供可供执行所述类别的所述第一版本和所述类别的所述第二版本的计算环境。

视需要,数据库变更工具可用于多个计算平台中的每个,所述多个计算平台中的每个能够执行同一数据库变更计划。

视需要,所述方法可进一步包含:在执行所述数据库变更计划之前停止执行所述软件系统;发出数据库变更工具命令以开始执行所述数据库变更计划;以及重新开始执行所述软件系统。

视需要,所述方法可进一步包含:修改针对存储于所述数据库中的数据执行的所述软件系统。

根据本发明的第三方面,提供一种系统,其包含:处理器、存储器装置、辅助存储器装置和存储在所述至少一个存储器装置上可由所述处理器执行以执行数据处理活动的指令,所述数据处理活动包含:根据类别的第一版本将数据从数据库复制到所述辅助存储器装置;执行变更数据库表的数据库变更脚本,所述数据从所述数据库表复制;以及根据所述类别的第二版本将数据从所述辅助存储器装置复制回到所述数据库。

视需要,所述辅助存储器装置可以是所述系统的数据存储装置。

视需要,所述类别的所述第一版本和所述第二版本可以是针对从所述数据库复制且复制到所述数据库的所述数据执行的软件应用程序的类别;可在通过所述执行所述数据库变更脚本来对所述数据库表作出变更之前根据所述数据库定制所述类别的所述第一版本;且在可通过所述执行所述数据库变更脚本来对所述数据库表作出变更之后根据所述数据库定制所述类别的所述第二版本。

视需要,可在调用所述类别的所述第一版本的所述方法之前将所述类别的所述第一版本载入到存储器中以用于执行其所述方法,且接着可在将所述数据库数据复制到所述存储器装置之后卸载所述第一类别;且可在所述执行所述数据库变更脚本之后且在调用所述类别的所述第二版本的所述方法之前,将所述类别的所述第二版本载入到存储器中以用于执行其所述方法。

视需要,所述数据库变更脚本、所述类别的所述第一版本和所述类别的所述第二版本可一起绑定为可由数据库变更工具执行的数据库变更计划;且所述数据库变更工具可提供可供执行所述类别的所述第一版本和所述类别的所述第二版本的计算环境。

附图说明

通过下文作为实例给出的具体描述参考附图,将明白本发明的这些和其它方面,在附图中:

图1是根据实例实施例的方法的框流程图。

图2是根据实例实施例的系统的架构图。

图3是根据实例实施例的计算装置的框图。

图4是根据实例实施例的方法的框流程图。

图5是根据实例实施例的方法的框流程图。

具体实施方式

本文中的各种实施例各自包含用于例如当将数据库从一种形式迁移到下一种形式时和可在软件系统版本迁移时执行的数据迁移的系统、方法和软件中的至少一个。

这些实施例是基于一般数据迁移框架,其使用制作软件的现有旧版本和新版本以在执行软件系统升级时执行数据迁移。此数据迁移框架包含三个步骤,但在一些实施例中可包含更多步骤。这三个步骤是:

1.使用制作软件的旧版本从数据库读取数据;

2.执行针对升级所需的数据库模式变更;以及

3.使用制作软件的新版本将数据保存回到数据库。

除以相反次序执行步骤之外,也可遵循相同模式执行系统降级。

基于此数据迁移框架的实施例中的一些使用复杂Java类别载入,其允许制作软件的两个版本并列运行,共享数据且被协调为升级/降级任务的一部分,因为Java和例如Liquibase的工具不可允许相同类别的两个版本在单个类别载入器中。

在一些实施例中,数据迁移框架和架构能够创建存储器内应用程序,其表示被提供到Java类别的制作软件的特定版本。就三个步骤而言,此可包含:

步骤1:被创建以使用现有模式从数据库读取数据的制作软件和应用程序的旧版本。此数据在存储于共享存储器中之前可以Java代码被操纵。当前使用所述框架执行的操控的实例包含合并、串行化、加密。

步骤2:接着升级数据库模式。

步骤3:接着从其中可操纵数据的共享存储器检索所存储数据,接着使用表示制作软件的新版本的存储器内应用程序将所述所存储数据进一步存留回到数据库中。

通过创建表示制作软件的“旧”版本和“新”版本的单独的存储器内应用程序,可在数据迁移期间将此类实施例载入在相同类别的两个版本中。此允许使用现有业务逻辑或其它应用逻辑以执行复杂数据迁移而不必编写数据库特定SQL查询或重复应用/类别逻辑。

本文中参考图式描述这些实施例和其它实施例。

在以下详细描述中,参考了形成本文一部分的附图,且在附图中以图示方式展示可实践本发明主题的特定实施例。这些实施例经充分详细描述以使所属领域的技术人员能够实践它们,且应理解,在不脱离本发明主题的范围的情况下可利用其它实施例且可作出结构、逻辑和电性变更。本发明主题的此类实施例可在本文中通过术语“发明”个别地和/或共同地提及,这仅为方便起见,且在实际上揭示多于一个发明或发明概念的情况下不意图主动地将本申请案的范围限制于任何单个发明或发明概念。

因此,以下描述不应以限制意义看待,且本发明主题的范围由所附权利要求书界定。

本文中所描述的功能或算法在一个实施例中以硬件、软件或软件和硬件组合来实施。软件包括存储在例如存储器或其它类型的存储装置等计算机可读媒体上的计算机可执行指令。此外,所描述的功能可对应于模块,其可以是软件、硬件、固件或其任何组合。多个功能视需要在一个或多个模块中执行,且所描述的实施例仅仅是实例。软件在数字信号处理器、ASIC、微处理器或操作于系统上的其它类型的处理器上执行,其它类型的处理器例如个人计算机、服务器、路由器或能够处理数据的其它装置,包含网络互连装置。

一些实施例在两个或多于两个的其中相关控制和数据信号在模块之间且通过模块传达的特定互连硬件模块或装置中实施所述功能,或将所述功能实施为专用集成电路的部分。因此,示范性过程流程适用于软件、固件和硬件实施方案。

图1是根据实例实施例的方法100的框流程图。方法100是构建于上文所论述的三个步骤上的实例方法。参考Liquibase和Liquibase脚本说明如图1中所说明的方法100。Liquibase是独立于平台的开源数据库迁移或数据库重构工具。在Liquibase内执行脚本以调用数据库来执行复制、操纵和转换数据的功能,这还可包含执行例如Java代码的计算机代码以执行各种数据处理任务。

因此,方法100包含在计算机上的Liquibase计算环境内执行Liquibase脚本102。可执行Liquibase脚本102,以对其上执行Liquibase脚本102的计算机的本地数据库108或可在别处存取,例如横越网络存取的数据库108作出变更。Liquibase脚本102可通过用以运用旧类别106的复本来从数据库108读取且复制数据的以下步骤1来实施上文所论述的数据迁移框架104,所述旧类别106包含来自经定制以针对旧数据库108数据模型或模式执行的应用程序的旧版本的逻辑。使用从应用程序的旧版本复制的旧类别106复制数据,且将所述数据存储到存储器装置。从数据库复制的数据所存储到的存储器装置可在执行方法100的计算机本地或可在远端,例如可通过网络存取所述存储器装置。此外,从数据库复制的数据可被复制到可拆卸数据存储装置,例如外部硬盘驱动器。

方法100接着执行步骤2,执行Liquibase脚本102部分以用于对数据库108作出变更,且接着继续步骤3以使用新类别110将数据复制回到数据库中,所述新类别110经定制以针对数据库108的新数据模型或模式执行。

在开始方法100之前,Liquibase脚本102可包含用以停止应用程序且锁定数据库108以防止可损坏数据或应用程序状态的数据变更的步骤。

图2是根据实例实施例的系统200的架构图。系统200是其上可实施方法100的系统的实例。并非系统200的所有元件都需要存在于所有实施例中且额外元件可存在于其它实施例中。

系统200包含其上执行例如可包含在图1的Liquibase脚本102中的数据迁移计划的计算机202。计算机202可包含Liquibase或其上的其它相似软件工具。计算机202可包含其上或通过例如到数据库210的网络208或其它连接另外连接到计算机202的数据库204。一个或多个外部数据存储装置206可连接到计算机202。

图3是根据实例实施例的计算装置的框图。在一个实施例中,多个此类计算机系统被用于分布式网络中,以在基于交易的环境中实施多个组件。可使用面向对象的、面向服务的或其它架构来实施此类功能且在多个系统和组件之间通信。呈计算机310的形式的一个实例计算装置可包含处理单元302、存储器304、可移除式存储装置312,以及非可移除式存储装置314。存储器304可包含易失性存储器306和非易失性存储器308。计算机310可包含或能够存取包含各种计算机可读媒体的计算环境,所述计算机可读媒体例如易失性存储器306和非易失性存储器308,可移除式存储装置312和非可移除式存储装置314。计算机存储装置包含随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)及电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、光盘只读存储器(CD ROM)、数字多功能盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储装置,或能够存储计算机可读指令的任何其它媒体。计算机310可包含或能够存取包含输入316、输出318,以及通信连接320的计算环境。计算机可使用通信连接来连接到一个或多个远程计算机,例如数据库服务器而在联网环境中操作。远程计算机可包含个人计算机(PC)、服务器、路由器、网络PC、对等装置或其它共用网络节点等等。通信连接可包含局域网(LAN)、广域网(WAN)或其它网络。

存储在计算机可读媒体上的计算机可读指令可由计算机310的处理单元302执行。硬盘驱动器、CD-ROM和RAM是包含非暂时性计算机可读媒体的物件的一些实例。举例来说,根据本发明的教示,计算机程序325能够在基于组件对象模型(COM)的系统中的其中一个服务器上提供一般技术,来执行用于数据存取与/或进行运算的存取控制检查,计算机程序325可包含在CD-ROM上并从CD-ROM载入到硬盘驱动器。计算机可读指令允许计算机310在具有多个用户和服务器的基于COM的计算机网络系统中提供一般存取控制。

图4是根据实例实施例的方法400的框流程图。方法400是可在例如图2的计算机202的计算机上执行以执行数据迁移的方法的实例。

方法400包含载入402数据库迁移脚本,所述数据库迁移脚本包含在软件系统升级之前来自软件系统的先前类别,和在软件系统升级之后来自软件系统的新类别。方法400接着可调用404先前类别的方法以将数据库数据从受数据库迁移脚本影响的数据库表复制到存储器装置。方法400接着通过执行406数据库迁移脚本且接着调用408新类别的方法以将数据库数据从存储器装置复制回到数据库而继续。

在方法400的一些实施例中,在调用先前类别的方法之前将先前类别载入402到存储器中以用于执行所述方法,且在将数据库数据复制到存储器装置之后卸载先前类别。相似地,在一些此类实施例中,在执行406数据库迁移脚本之后且在调用新类别的方法之前将新类别载入到存储器中以用于执行所述方法。

在方法400的一些实施例中,数据库迁移脚本、先前类别和新类别一起绑定为可由例如如上文所论述的Liquibase的数据库迁移工具执行的数据库迁移计划。在一些此类实施例中,数据库迁移工具提供可供执行先前类别和新类别的计算环境。数据库迁移工具可包含用于例如不同数据库管理系统的多个计算平台或计算平台变数中的每个的版本,所述多个计算平台或计算平台变数中的每个能够执行同一数据库迁移计划。

方法400的一些实施例进一步包含在执行数据库迁移计划之前停止执行软件系统、发出数据库迁移工具命令以开始执行数据库迁移计划以及重新开始执行软件系统。在一些此类实施例中,方法400还可修改针对存储于数据库中的数据执行的软件系统。

根据实例实施例,图5是方法500的框流程图。方法500是可在例如图2的计算机202的计算机上执行以执行数据迁移的方法的另一实例。

方法500包含根据类别的第一版本将数据从数据库复制502到存储器装置和执行504变更数据库表的数据库变更脚本,所述数据从所述数据库表复制。方法500接着可根据类别的第二版本将数据从存储器装置复制506回到数据库。

在方法500的一些此类实施例中,类别的第一版本和第二版本是针对从数据库复制且复制到数据库的数据执行的软件应用程序的类别。可在通过执行数据库变更脚本而对数据库表作出变更之前根据数据库定制类别的第一版本,而可在通过执行数据库变更脚本而对数据库表作出变更之后根据数据库定制类别的第二版本。此外,在一些实施例中,可在调用方法之前将类别的第一版本载入到存储器中以用于执行其方法,且在将数据库数据复制到存储器装置之后卸载第一类别。相似地,可在执行数据库变更脚本之后且在调用类别的第二版本的方法之前将类别的第二版本载入到存储器中以用于执行其方法。

所属领域的技术人员将容易理解,在不脱离如所附权利要求书中表达的本发明主题的原理和范围的情况下,可对为了阐释本发明主题的本质而描述和说明的部分和方法阶段的细节、材料和布置作出各种其它变更。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1