一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据迁移方法、装置、电子设备和计算机可读存储介质与流程

2022-04-24 19:49:19 来源:中国专利 TAG:


1.本公开涉及数据处理领域,尤其涉及一种数据迁移方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.mysql是一个开放源代码的关系数据库管理系统,可对数据进行管理。在软件国产化的大背景下,很多网络服务器(web server)应用需要同时满足mysql和国产数据库,例如人大金仓数据库、达梦数据库、神州通用数据库以及南大通用数据库等。在该需求下,往往需要对不同数据库中的数据进行迁移。
3.现行技术中,两个mysql数据库之间进行数据迁移时,常用的方法是利用mysql提供的比对工具对两个库的表结构和表约束进行比对,进而完成数据的迁移。将mysql中的数据迁移至其它类型的数据库时,往往要通过数据库客户端自带的迁移工具才能完成数据的迁移,这就需要先安装要将数据迁移至的数据库客户端,通过安装的数据库客户端自带的迁移工具对mysql数据库中的数据进行迁移。但通过迁移工具将一个数据库的数据迁移至另一个数据库时,步骤繁琐,工作量大。


技术实现要素:

4.有鉴于此,本公开提供了一种数据迁移方法、装置、电子设备和计算机可读存储介质,以解决用户在对数据库中的数据进行迁移时步骤繁琐,工作量大的技术问题。
5.为了实现上述目的,本公开实施例提供技术方案如下:
6.第一方面,本公开实施例提供了一种数据迁移方法,包括:
7.获取第一数据库与第二数据库之间的映射关系,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系;
8.基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,所述第一数据表为所述第一数据库中的数据表;
9.基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
10.作为本公开实施例一种可选的实施方式,所述基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,包括:
11.基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息;
12.根据所述第二数据表的属性信息,获得第一语句;
13.通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
14.作为本公开实施例一种可选的实施方式,所述属性信息包括:数据表的约束条件、数据表的表名、数据表的字段名、以及数据表的字段类型中的至少一个。
15.作为本公开实施例一种可选的实施方式,所述基于所述映射关系,将所述第一数
据表包含的数据迁移至所述第二数据表,包括:
16.基于所述映射关系,对所述第一数据表包括的数据进行转换;
17.根据对所述第一数据表包括的数据进行转换后得到的数据,获得第二语句;
18.执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
19.作为本公开实施例一种可选的实施方式,在基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表之后,所述方法还包括:
20.对所述第一数据库进行升级,得到升级后的第一数据库;
21.通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据;
22.基于所述映射关系和所述差异数据,对所述第二数据库进行升级。
23.作为本公开实施例一种可选的实施方式,所述基于所述映射关系和所述差异数据,对所述第二数据库进行升级,包括:
24.基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据;
25.根据所述转换后的差异数据,获得第三语句;
26.通过执行所述第三语句,对所述第二数据库进行升级。
27.作为本公开实施例一种可选的实施方式,所述差异数据包括:差异数据表包含的数据,和/或,保留数据表包含的差异数据;
28.其中,所述差异数据表包括:在对所述第一数据库升级时,新建的数据表和/或删除的数据表;
29.所述保留数据表包括:所述第一数据库和所述升级后的第一数据库中均包括的数据表。
30.第二方面,本公开实施例提供了一种数据迁移装置,包括:
31.获取模块,用于获取第一数据库与第二数据库之间的映射关系,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系;
32.迁移模块,用于基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,所述第一数据表为所述第一数据库中的数据表;
33.所述迁移模块,还用于基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
34.作为本公开实施例一种可选的实施方式,所述迁移模块,包括:
35.第一构建单元,用于基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息;根据所述第二数据表的属性信息,获得第一语句;
36.第一执行单元,用于通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
37.作为本公开实施例一种可选的实施方式,所述属性信息包括:数据表的约束条件、数据表的表名、数据表的字段名、以及数据表的字段类型中的至少一个。
38.作为本公开实施例一种可选的实施方式,所述第一构建单元,还用于基于所述映射关系,对所述第一数据表包括的数据进行转换;根据对所述对第一数据表包括的数据进行转换后得到的数据,获得第二语句;
39.所述第一执行单元,还用于执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
40.作为本公开实施例一种可选的实施方式,所述装置还包括:
41.处理模块,用于对所述第一数据库进行升级,得到升级后的第一数据库;
42.比对模块,用于通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据;
43.升级模块,用于基于所述映射关系和所述差异数据,对所述第二数据库进行升级。
44.作为本公开实施例一种可选的实施方式,所述升级模块,包括:
45.第二构建单元,用于基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据;根据所述转换后的差异数据,获得第三语句;
46.第二执行单元,用于通过执行所述第三语句,对所述第二数据库进行升级。
47.作为本公开实施例一种可选的实施方式,所述差异数据包括:差异数据表包含的数据,和/或,保留数据表包含的差异数据;
48.其中,所述差异数据表包括:在对所述第一数据库升级时,新建的数据表和/或删除的数据表;
49.所述保留数据表包括:所述第一数据库和所述升级后的第一数据库中均包括的数据表。
50.第三方面,本公开实施例提供了一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序,处理器用于在调用计算机程序时执行第一方面或第一方面任一种可选的实施方式所述的数据迁移方法。
51.第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面或第一方面任一种可选的实施方式所述的数据迁移方法。
52.本公开实施例提供一种数据迁移方法、装置、电子设备和计算机可读存储介质,其中,该方法通过基于获取的第一数据库与第二数据库之间的映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,并基于映射关系将第一数据库中的所述第一数据表包含的数据迁移至所述第二数据表。其中,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系。该方法中,首先获取了第一数据库的数据类型与第二数据库的数据类型之间的映射关系,可以使得在基于第一数据库进行开发时,基于映射关系进行转换,将第一数据库中的数据转换为符合第二数据库的数据类型的数据。基于该方法,开发人员只需关注第一数据库环境下的开发,无需针对第二数据库再次进行开发,减轻了开发人员的负担。利用本技术实施例提供的数据迁移方法,在第二数据库中建立要进行迁移的第一数据表对应的第二数据表,进而将第一数据表中的数据迁移至第二数据表。从而,简化了将第一数据库中的第一数据表和第一数据表包含的数据向第二数据库的迁移步骤,节省了时间。
附图说明
53.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
54.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而
言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1为本公开一个实施例提供的数据迁移方法的步骤流程图;
56.图2为本公开另一个实施例提供的数据迁移方法的步骤流程图;
57.图3为本公开又一个实施例提供的数据迁移方法的步骤流程图;
58.图4为本公开再一个实施例提供的数据迁移方法的步骤流程图;
59.图5为本公开一个实施例中数据迁移装置的结构框图;
60.图6为本公开另一个实施例中数据迁移装置的结构框图;
61.图7为本公开一个实施例中计算机设备的内部结构图。
具体实施方式
62.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
63.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
64.本公开的说明书和权利要求书中的术语“第一”和“第二”等是用于区别同步的对象,而不是用于描述对象的特定顺序。例如,第一数据库和第二数据库是用于区别不同的数据库,而不是用于描述数据库的特定顺序。
65.在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
66.需要说明的是,在本公开提供的实施例中,对第一数据库和第二数据库的类型不做具体的限定,例如,第一数据库可以为mysql,也可以为一些国产数据库,第二数据库可以为mysql,或其它国产数据库。现行技术中,在数据库之间进行数据迁移时,用户需要安装对应的数据库客户端、利用安装的客户端自带的迁移工具进行配置后进行迁移。该方法适用的数据库有限,且利用该方法进行数据迁移时不仅需要安装数据库客户端,安装数据库客户端后进行迁移时的工作量也较大。另外,现行技术中mysql提供的比对工具虽然可以对两个数据库的表结构和表约束进行比对,进而完成数据的迁移,但该比对工具无法比对出新增表,会影响迁移后的数据的完整性。而且,在基于比对工具将mysql中的数据迁移至其它国产数据库后,迁移后的数据可能存在无法编辑或无法再次导入的情况。
67.基于上述存在的技术问题,为了提高数据库之间数据迁移的效率、保证迁移的数据的准确性,本公开实施例提供了一种在多种类型的数据库之间通用的数据迁移方法。以第一数据库为mysql,对本公开实施例提供的数据迁移方法的优越性进行说明,基于mysql的数据类型等语法特点,将mysql中的数据转换为符合第二数据库的语法的数据类型,即开发者只需关注mysql环境下的开发,无需在第二数据库的环境下调试,也可以获得符合第二数据库的语法的数据,减轻了开发人员的负担。且基于本实施例提供的方法,通过比对第一
数据库和升级后的第一数据库,可以生成第二数据库的升级语句,用于运维人员对第二数据库进行升级,节省大量的人力物力。
68.本公开实施例提供的数据迁移方法的执行主体可以为终端设备。该终端设备可以为手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、智能手表、智能手环等终端设备,或者该终端设备还可以为其他类型的终端设备,本公开实施例对终端设备的类型不作限定,且本公开实施例中的第一数据库和第二数据库可以安装于同一终端设备上,也可以安装于不同的终端设备上。
69.请参阅图1,图1为本公开一个实施例提供的数据迁移方法的步骤流程图。参照图1所示,本公开实施例提供的数据迁移方法可以包括:
70.s110、获取第一数据库与第二数据库之间的映射关系。
71.其中,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系。
72.需要说明的是,上述第一数据库和第二数据库为不同类型的数据库,但对第一数据库和第二数据库的具体类型不做限定,例如第一数据库可以为mysql,第二数据库可以为一些国产数据库,该举例只是说明mysql可以作为第一数据库,但第一数据库不限于是mysql。数据类型包括数据库中所有的字段和字段值所属的数据类型。
73.在获取第一数据库与第二数据库之间的映射关系之前,需要确定第一数据库的类型和第二数据库的类型,在第一数据库与第二数据库的类型确定的情况下,可以确定第一数据库的数据类型和第二数据库的数据类型,从而确定第一数据库的数据类型和第二数据库的数据类型之间的映射关系。所述数据类型包括:基于第一数据库的数据类型与第二数据库的数据类型之间的映射关系,可以将第一数据库中的数据进行转换,使转换后的数据所属的数据类型符合第二数据库的语法。
74.举例对第一数据库的数据类型与第二数据库的数据类型之间的映射关系进行说明:
75.一种情况下,第一数据库中“set”类型的数据映射到第二数据库中时,为“char”类型的数据,第一数据库中“enum”类型数据映射到第二数据库中时,为“char”类型的数据,第一数据库中“longtext”类型的数据映射到第二数据库中时,为“clob”类型的数据。
76.另一种情况下,第一数据库中“set”类型的数据映射到第二数据库中时,为“varchar”类型的数据,第一数据库中“enum”类型的数据映射到第二数据库中时,为“varchar”类型的数据,第一数据库中“longtext”类型的数据映射到第二数据库中时,为“clob”类型的数据。
77.根据以上两种情况的举例,第二数据库属于不同类型的数据库时,将第一数据库的中的数据类型映射到第二数据库,得到的可能是同一类型的数据,也可能是不同类型的数据,将第一数据库的中的数据映射到第二数据库,得到的数据所属的数据类型由第二数据库的类型而定。以上举例仅用于对第一数据的数据类型、第二数据库的类型、以及第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系做解释,不对第一数据库的数据类型做限定,不对第二数据库的类型做限定,也不对第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系做任何限定。
78.s120、基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表。
79.其中,所述第一数据表为所述第一数据库中的数据表。
80.在第一数据库和第二数据库中,数据是以表的形式存储的。第一数据表也可以称为第一数据表结构,为第一数据库中第一数据对应的表结构,所述第一数据为要进行迁移的数据。第一数据可以包含第一数据库中的所有数据,也可以包含第一数据库中的部分数据。当需要将第一数据库中的所有数据进行迁移时,第一数据包含第一数据库中的所有数据,则需要在第二数据库中建立与第一数据库中所有数据表对应的表结构(第二数据表);当需要将第一数据库中的部分数据进行迁移时,第一数据包含第一数据库中的该部分数据,则在第二数据库中建立与该部分数据对应的表结构(第二数据表)。
81.第二数据表为将所述第一数据表转换后,形成的数据表(表结构),符合第二数据库的语法,第二数据表用于保存从第一数据库中迁移的数据。
82.s130、基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
83.基于第一数据库的数据类型与第二数据库的数据类型之间的映射关系,将第一数据表中包含的数据进行转换,迁移至第二数据表,迁移后的数据的数据类型符合第二数据库的语法。第一数据表包含的数据的数据类型与迁移后对应的第二数据表包含的数据的数据类型之间的关系满足所述映射关系。
84.本公开实施例提供的数据迁移方法,通过基于获取的第一数据库与第二数据库之间的映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,并基于映射关系将第一数据库中的所述第一数据表包含的数据迁移至所述第二数据表。其中,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系。该方法中,由于首先获取了第一数据库的数据类型与第二数据库的数据类型之间的映射关系,可以使得在基于第一数据库进行开发时,基于映射关系进行转换,将第一数据库中的数据转换为符合第二数据库的语法信息的数据,因此对于开发者来说,只需关注第一数据库环境下的开发,开发人员无需针对第二数据库再次进行开发,减轻了开发人员的负担。利用本技术实施例提供的数据迁移方法,在第二数据库中建立要进行迁移的第一数据表对应的第二数据表,进而将第一数据表中的数据迁移至第二数据表。从而,简化了将第一数据库中的第一数据表和第一数据表包含的数据向第二数据库的迁移步骤,节省了时间。
85.参照图2,图2为本公开另一个实施例提供的数据迁移方法的步骤流程图。在图2所示的步骤中,步骤s1201至步骤s1203为:对图1所示的步骤s120(基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表)的一种可实现方式的描述。在本实施例中,对步骤s110的说明可参见图1中步骤s110的说明,此处不再赘述。
86.s1201、基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息。
87.可选的,所述属性信息包括:数据表的约束条件、数据表的表名、数据表的字段名、以及数据表的字段类型中的至少一个。
88.需要说明的是,表的属性信息包括第一数据表的属性信息和第二数据表的属性信息,第一数据表的属性信息包括:第一数据表的表名、第一数据表的字段名、第一数据表的字段类型、第一数据表的字段精度、以及第一数据表的约束条件中的一个或多个;第二数据
表的属性信息包括:第二数据表的表名、第二数据表的字段名、第二数据表的字段类型、第二数据表的字段精度、以及第二数据表的约束条件中的一个或多个。所述表的约束条件包括主键、外键,其中,主键是非空且唯一的。
89.基于映射关系将第一数据表的属性信息转换之后,得到第二数据表的属性信息,第二数据表的属性信息符合第二数据库的语法。
90.s1202、根据所述第二数据表的属性信息,获得第一语句。
91.其中,所述第一语句也可称为建表(creat)语句,所述第一语句(creat语句)符合第二数据库的语法。第一语句的获得包括第一语句的构建。在基于第一数据库的数据类型与第二数据库的数据类型的映射关系,得到第二数据表的属性信息之后,构建第一语句的关键字和语法等也确定,基于确定的关键字、语法、第二数据表的属性信息等,构建第一语句。若关键字不符合第二数据库的语法或第二数据表属性信息不符合第二数据库的语法,则在构建第一语句的过程中都会报错。
92.所述第一语句在指定文件中写入,用于在第二数据库中建立与所述第一数据表对应的所述第二数据表。
93.s1203、通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
94.调用保存有第一语句的指定文件,执行第一语句,第一语句的执行过程为在第二数据库中建立第一数据表对应的所述第二数据表的过程。
95.需要说明的是,以上步骤s1201至s1203只是步骤s120(基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表)的一种可选实现方式,并不是唯一实现方式。
96.可选的,步骤s130(基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表)可通过步骤s1301至步骤s1303来实现,图2中步骤s1301至步骤s1303是对步骤s130(基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表)的一种可实现方式的描述。参照图2所示,步骤s130(基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表),可包括如下步骤s1301至步骤s1303:
97.s1301、基于所述映射关系,对所述第一数据表包括的数据进行转换。
98.第一数据表包括的数据可以指要进行迁移的数据,可以包括第一数据表中所有字段和字段值,对所述第一数据表包括的数据进行转换包括:将第一数据表包括的数据根据映射关系进行转换,得到第二数据表包括的数据,所述第二数据表包括的数据所属的数据类型,符合第二数据库的数据类型。
99.基于所述映射关系,对所述第一数据表包括的数据进行转换,包括:获取第一数据表包括的特殊字段,所述特殊字段包括不符合第二数据库的数据类型的字段,对所述特殊字段进行转换,得到转换后的符合第二数据库的数据类型的特殊字段。
100.s1302、根据对所述第一数据表包含的数据进行转换后得到的数据,获得第二语句。
101.所述第二语句也可称为插入(insert)语句,获得第二语句可包括:构建插入语句。构建插入语句可包括:获取第一数据表包括的特殊字段,所述特殊字段包括:不符合第二数据库的数据类型的字段。对所述特殊字段进行转换,得到转换后的符合第二数据库的数据
类型的特殊字段,根据转换后的符合第二数据库的数据类型的特殊字段构建第一插入语句,将所述第一插入语句追加到所述指定文件中,所述第一插入语句用于转换所述特殊字段,并将转换后的特殊字段插入第二数据表;获取同类型字段,所述同类型字段包括:在第一数据表中的数据类型与第二数据表中的数据类型相同的字段。基于同类型字段构建第二插入语句,将所述第二插入语句追加到所述指定文件中,所述第二插入语句用于将所述同类型字段插入所述第二数据表。获取特殊字段和同类型字段可通过查询语句来获取。
102.s1303、执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
103.基于上述对步骤s1302的说明,执行第一插入语句,将所述特殊字段进行转化并插入第二数据表,执行第二插入语句,将同类型字段插入第二数据表。从而,完成第一数据表包含的数据从第一数据库向第二数据库的迁移。
104.基于所述特殊字段和所述同类型字段分别构建第一插入语句和第二插入语句,基于第一插入语句和第二插入语句对第一数据表包含的数据进行处理,可提高数据迁移的效率。
105.需要说明的是,以上步骤s1301至s1303只是步骤s130(基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表)的一种可选实现方式,并不是唯一实现方式。
106.可选的,在步骤s130(基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表)之后,还可包括如下步骤s140至步骤s160,图3是在图1所示的实施例的基础上,对步骤s130之后的可选步骤的进一步说明,对步骤s110至步骤s130的说明可参见其在图1所示的实施例中的说明,此处不再赘述。参照图3所示,在步骤s130之后,还可包括:
107.s140、对所述第一数据库进行升级,得到升级后的第一数据库。
108.对第一数据库进行升级举例说明,例如,对第一数据库进行升级可以包括:改变、增加、删除第一数据库中的数据表和该数据表包含的数据,也可以包括:对第一数据库中的部分数据表中的数据进行改变、删除、或在该部分数据表中增加数据等。此举例用于对第一数据库和升级后的数据库进行举例说明,并不用于限定第一数据库的升级方式,也不用于限定升级后的第一数据库包含的数据。
109.s150、通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据。
110.可选的,所述差异数据包括:差异数据表包含的数据,和/或,保留数据表包含的差异数据。
111.其中,所述差异数据表包括:在对所述第一数据库升级时,新建的数据表和/或删除的数据表;所述保留数据表包括:所述第一数据库和所述升级后的第一数据库中均包括的数据表。
112.通过以下几种情况对所述差异数据进行说明:
113.一种情况下,所述差异数据包括:差异数据表包含的数据;差异数据表包括:在对所述第一数据库升级时,新建的数据表。即所述差异数据包括:对第一数据库升级时新增的数据表包含的数据。另一种情况下,所述差异数据包括:差异数据表包含的数据;差异数据表包括:在对所述第一数据库升级时,删除的数据表。即所述差异数据包括:对第一数据库
升级时删除的数据表包含的数据。又一种情况下,所述差异数据包括:差异数据表包含的数据;差异数据表包括:在对所述第一数据库升级时,新增的数据表和删除的数据表。即所述差异数据包括:对第一数据库升级时新增的数据表包含的数据,和删除的数据表包含的数据。再一种情况下,所述差异数据包括:保留数据表包含的差异数据。即在对所述第一数据库升级时,保留的数据表,需要注意的是,保留的数据表中的数据可能发生改变、增加或删除。再一种情况下,所述差异数据包括:差异数据表包含的数据和保留数据表包含的差异数据。
114.所述差异数据表可以包括:在对所述第一数据库升级时,新建的数据表包含的数据;也可以包括:在对所述第一数据库升级时,删除的数据表包含的数据;还可以包括:在对所述第一数据库升级时,新增的数据表包含的数据和删除的数据表包含的数据。
115.举例对所述差异数据表和保留数据表包含的数据进行说明:若第一数据库中包含数据表a、数据表b、数据表c、数据表d四张数据表,升级后的第一数据库中包含表数据表a、数据表c、数据表d和数据表e四张数据表,即在对第一数据库进行升级时,删除了数据表b,新增了数据表e,则差异数据表包括数据表b和数据表e,保留数据表包括数据表a、数据表c、数据表d。
116.基于上述举例对保留数据表包含的差异数据进行说明:以保留数据表b为例:在对第一数据库进行升级时,删除了数据表b中的10行数据,并增加了2列数据,则删除的该10行数据和增加的该2列数据都属于保留数据表包含的差异数据,数据表b中被改变的数据也属于保留数据表包含的差异数据。
117.以上举例仅用于对差异数据、差异数据表包含的数据和保留数据表包含的数据进行说明,不构成限定。
118.可选的,获取差异数据可包括:以第一数据库为参照,基于第一数据库中数据表的表名在升级后的第一数据库中查询,获取差异数据表(新建的数据表和/或删除的数据表),所述数据表的表名可从配置文件中获取。
119.可选的,获取差异数据还可包括:以升级后的第一数据库为参照,获取升级后的第一数据库中的表的字段信息,基于所述字段信息在升级前的第一数据库中查询,获取差异数据。
120.s160、基于所述映射关系和所述差异数据,对所述第二数据库进行升级。
121.差异数据中包括:更新数据、新增数据、删除数据,基于映射关系和差异数据对第二数据库进行升级,包括:将差异数据包括的新增数据以符合第二数据库语法的类型添加至第二数据库中,将差异数据包括的删减数据从第二数据库中删除,根据差异数据包括的更新数据对第二数据库中的对应数据进行改变。
122.需要说明的是,对第二数据库进行升级可以包括:对第二数据库中的所有数据表进行升级,也可以包括对第二数据库中的子数据库进行升级(部分数据表),对此不做限定。在对第二数据库中的子数据库(部分数据表)进行升级时,首先根据配置文件获取需要升级的数据表的表名,基于所述数据表的表名在第一数据库和升级后的第一数据库中查询,获取子差异数据,基于所述子差异数据对第二数据库中的子数据库进行升级。
123.可选的,在图2所示的实施例的基础上,在步骤s1303之后,可执行上述步骤s140至步骤s160,参照图4所示。
124.可选的,上述步骤s160(基于所述映射关系和所述差异数据,对所述第二数据库进行升级),可包括如下步骤s1601至步骤s1603,步骤s1601至步骤s1603是对步骤s160(基于所述映射关系和所述差异数据,对所述第二数据库进行升级)的一种可实现方式的描述,结合图4进行说明:
125.图4所示的实施例是在图2所示的实施例的基础上,对步骤s160(基于所述映射关系和所述差异数据,对所述第二数据库进行升级)的实现方式的进一步说明。在图4所示的实施例中,不再对步骤s1601之前的步骤进行赘述,可参见图1和图2中实施例的具体说明。
126.s1601、基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据。
127.转换后的差异数据所属的数据类型符合第二数据库的语法。
128.s1602、根据所述转换后的差异数据,获得第三语句。
129.所述第三语句也可称为升级语句,用于对第二数据库中的数据进行更新、删除,或在第二数据库中增加新的数据。所述升级语句符合第二数据库的语法。第二数据库的类型不同,对应的升级语句也不同。获得第三语句包括:构建升级语句,构建升级语句可包括:根据第二数据库的类型和差异数据构建升级语句。
130.s1603、通过执行所述第三语句,对所述第二数据库进行升级。第三语句(升级语句)是基于第二数据库的类型和获取的差异数据构建的,由于构建的升级语句的执行对象是差异数据,不是所有的数据,因此可减小计算量,提高处理效率。通过比对第一数据库和升级后的第一数据库,结合第二数据库的类型,可以生成多个第二数据库对应的升级语句,便于运维人员直接通过已经构建好的升级语句对对应的第二数据库进行升级,省时省力。
131.基于同一发明构思,作为对上述数据迁移方法的实现,本公开实施例还提供了一种数据迁移装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
132.图5为本公开实施例提供的数据迁移装置的结构框图,如图5所示,本实施例提供的数据迁移装置500包括:
133.获取模块510,用于获取第一数据库与第二数据库之间的映射关系,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系;
134.迁移模块520,用于基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,所述第一数据表为所述第一数据库中的数据表;
135.所述迁移模块520,还用于基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
136.作为本公开实施例一种可选的实施方式,所述迁移模块520,包括:
137.第一构建单元,用于基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息;根据所述第二数据表的属性信息,获得第一语句;
138.第一执行单元,用于通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
139.作为本公开实施例一种可选的实施方式,所述属性信息包括:数据表的约束条件、数据表的表名、数据表的字段名、以及数据表的字段类型中的至少一个。
140.作为本公开实施例一种可选的实施方式,所述第一构建单元,还用于基于所述映
射关系,对所述第一数据表包括的数据进行转换;根据对所述对第一数据表包括的数据进行转换后得到的数据,获得第二语句;
141.所述第一执行单元,还用于执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
142.作为本公开实施例一种可选的实施方式,参照图6所示,图6为本公开另一个实施例中的装置结构框图,在图5所示的数据迁移装置的基础上,所述装置还可包括:
143.处理模块630,用于对所述第一数据库进行升级,得到升级后的第一数据库;
144.比对模块640,用于通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据;
145.升级模块650,用于基于所述映射关系和所述差异数据,对所述第二数据库进行升级。
146.作为本公开实施例一种可选的实施方式,所述升级模块650,包括:
147.第二构建单元,用于基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据;根据所述转换后的差异数据,获得第三语句;
148.第二执行单元,用于通过执行所述第三语句,对所述第二数据库进行升级。
149.作为本公开实施例一种可选的实施方式,所述差异数据包括:差异数据表包含的数据,和/或,保留数据表包含的差异数据;其中,所述差异数据表包括:在对所述第一数据库升级时,新建的数据表和/或删除的数据表;所述保留数据表包括:所述第一数据库和所述升级后的第一数据库中均包括的数据表。
150.本公开实施例提供的数据迁移装置,基于该装置可以实现上述方法实施例中的各数据迁移方法的步骤。其中,该方法通过基于获取的第一数据库与第二数据库之间的映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,并基于映射关系将第一数据库中的所述第一数据表包含的数据迁移至所述第二数据表。其中,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系。该方法中,由于首先获取了第一数据库的数据类型与第二数据库的数据类型之间的映射关系,可以使得在基于第一数据库进行开发时,基于映射关系进行转换,将第一数据库中的数据转换为符合第二数据库的语法信息的数据,因此对于开发者来说,只需关注第一数据库环境下的开发,开发人员无需针对第二数据库再次进行开发,减轻了开发人员的负担。利用本技术实施例提供的数据迁移方法,在第二数据库中建立要进行迁移的第一数据表对应的第二数据表,进而将第一数据表中的数据迁移至第二数据表,从而,实现了第一数据表和第一数据表包含的数据从第一数据库向第二数据库的迁移,该方法简化了数据迁移的步骤,节省了时间。
151.本实施例提供的数据迁移装置可以执行上述方法实施例提供的数据迁移方法,其实现原理与技术效果类似,此处不再赘述。上述数据迁移装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
152.在一个实施例中,提供了一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中一个或多个计算机程序被存储在存储器中;一个或多个处理器
在执行一个或多个计算机程序时,使得电子设备实现前文实施例所述的数据迁移方法。
153.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该计算机程序被处理器执行时以实现上述实施例提供的数据迁移方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
154.本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
155.在一个实施例中,本公开提供的数据迁移装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该电子设备的各个程序模块,比如,图6所示的处理模块630和比对模块640。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本公开各个实施例的数据迁移方法中的步骤。
156.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取第一数据库与第二数据库之间的映射关系,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系;基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,所述第一数据表为所述第一数据库中的数据表;基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
157.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息;根据所述第二数据表的属性信息,获得第一语句;通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
158.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于所述映射关系,对所述第一数据表包括的数据进行转换;根据对所述第一数据表包含的数据进行转换后得到的数据,获得第二语句;执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
159.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述第一数据库进行升级,得到升级后的第一数据库;通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据;基于所述映射关系和所述差异数据,对所述第二数据库进行升级。
160.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据;根据所述转换后的差异数据,获得第三
语句;通过执行所述第三语句,对所述第二数据库进行升级。
161.本实施例提供的计算机设备,可以实现上述方法实施例提供的数据迁移方法,其实现原理与技术效果类似,此处不再赘述。
162.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取第一数据库与第二数据库之间的映射关系,所述映射关系包括:所述第一数据库的数据类型与所述第二数据库的数据类型之间的映射关系;基于所述映射关系,在所述第二数据库中建立与第一数据表对应的第二数据表,所述第一数据表为所述第一数据库中的数据表;基于所述映射关系,将所述第一数据表包含的数据迁移至所述第二数据表。
163.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于所述映射关系和所述第一数据表的属性信息,获取所述第二数据表的属性信息;根据所述第二数据表的属性信息,获得第一语句;通过执行所述第一语句,在所述第二数据库中建立与所述第一数据表对应的所述第二数据表。
164.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于所述映射关系,对所述第一数据表包括的数据进行转换;根据对所述第一数据表包含的数据进行转换后得到的数据,获得第二语句;执行所述第二语句,以将所述第一数据表包含的数据迁移至所述第二数据表。
165.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述第一数据库进行升级,得到升级后的第一数据库;通过比对升级前的所述第一数据库和所述升级后的第一数据库,获取差异数据;基于所述映射关系和所述差异数据,对所述第二数据库进行升级。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于所述映射关系,对所述差异数据进行转换,获得转换后的差异数据;根据所述转换后的差异数据,获得第三语句;通过执行所述第三语句,对所述第二数据库进行升级。
166.本实施例提供的计算机可读存储介质上存储的计算机程序,可以实现上述方法实施例提供的数据迁移方法,其实现原理与技术效果类似,此处不再赘述。
167.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,比如静态随机存取存储器(static random access memory,sram)和动态随机存取存储器(dynamic random access memory,dram)等。
168.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
169.以上实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在
不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献