数据库迁移方法、装置、设备和存储介质制造方法及图纸

技术编号:38575896 阅读:15 留言:0更新日期:2023-08-26 23:23
本申请提供一种数据库迁移方法、装置、设备和存储介质,涉及数据库技术领域,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,包括:分别获取源数据库的第一数据表信息和第一视图信息,以及目标数据库的第二数据表信息和第二视图信息;根据第一数据表信息和第一视图信息生成源数据库对应的第一数据表的表创建语句;根据第二数据表信息和第二视图信息生成目标数据库对应的第二数据表的表创建语句;对第一数据表的表创建语句和第二数据表的表创建语句进行字符串对比,得到表结构比较结果;基于表结构比较结果进行数据库迁移,以将源数据库中的目标数据迁移至目标数据库,能够有效提高数据库迁移安全性。能够有效提高数据库迁移安全性。能够有效提高数据库迁移安全性。

【技术实现步骤摘要】
数据库迁移方法、装置、设备和存储介质


[0001]本申请涉及数据库
,尤其涉及一种数据库迁移方法、装置、设备和存储介质。

技术介绍

[0002]数据库版本更新、扩容、分布式存储或硬件更新等场景中,普遍存在数据库迁移需求,目前常用的数据库迁移方案主要分为手动迁移和全自动迁移。其中,手动迁移由开发人员人工编写SQL语句进行数据库迁移,迁移成功率和效率低下,且容易出现错写和漏写等情况。而目前的全自动迁移方案均强依赖于且受限于数据库框架的自带功能,泛化能力差,如在数据库版本更新场景中,若更换了数据库框架或编程语言,会对上述全自动迁移方案造成极大影响,同时,由于其受限于数据库框架提供的功能,易造成迁移失败或数据迁移不完整;另外,迁移过程完全黑箱,无法针对敏感操作或危险操作进行可控管理,易造成数据损失。
[0003]因此,需要提供一种改进的数据库迁移方案,以解决上述现存问题。

技术实现思路

[0004]本申请提供了一种数据库迁移方法、装置和存储介质,具有较好的泛化能力,有效提高数据迁移的操作安全性。
[0005]一方面,本申请提供了一种数据库迁移方法,所述方法包括:
[0006]分别获取所述源数据库的第一数据表信息和第一视图信息,以及所述目标数据库的第二数据表信息和第二视图信息;
[0007]根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句;
[0008]根据所述第二数据表信息和第二视图信息生成所述目标数据库对应的第二数据表的表创建语句
[0009]对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果;
[0010]基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库。
[0011]另一方面提供了一种数据库迁移装置,所述装置包括:
[0012]表结构信息获取模块:用于分别获取所述源数据库的第一数据表信息和第一视图信息,以及所述目标数据库的第二数据表信息和第二视图信息;
[0013]第一表创建语句生成模块:用于根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句;
[0014]第二表创建语句生成模块:用于根据所述第二数据表信息和第二视图信息生成所述目标数据库对应的第二数据表的表创建语句;
[0015]表结构比较模块:用于对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果;
[0016]数据库迁移模块:用于基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库。
[0017]另一方面提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的数据库迁移方法。
[0018]另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的数据库迁移方法。
[0019]另一方面提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的数据库迁移方法。
[0020]另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令被处理器执行时实现如上述的数据库迁移方法。
[0021]本申请提供的数据库迁移方法、装置、设备、存储介质、服务器和计算机程序产品,具有如下技术效果:
[0022]本申请的技术方案通过分别获取源数据库的第一数据表信息和第一视图信息,以及目标数据库的第二数据表信息和第二视图信息;进而生成源数据库对应的第一数据表的表创建语句,以及目标数据库对应的第二数据表的表创建语句;然后对第一数据表的表创建语句和第二数据表的表创建语句进行字符串对比,得到表结构比较结果,进而基于表结构比较结果进行数据库迁移,以将源数据库中的目标数据迁移至目标数据库,能够通过半自动化方式实现数据库迁移,以降低数据库迁移成本,提高迁移效率,并避免黑箱操作导致的不当数据删除和修改等危险操作,提高迁移过程中的数据库安全性。同时,本申请的方案能够基于独立的第三方程序执行,不依赖和受限于数据库框架和自身提供的功能,与数据库代码逻辑解耦,具有较好的泛化能力。
附图说明
[0023]为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0024]图1是本申请实施例提供的一种应用环境的示意图;
[0025]图2是本申请实施例提供的一种数据库迁移方法的流程示意图;
[0026]图3是本申请实施例提供的一种数据库迁移方法的原理示意图;
[0027]图4是本申请实施例提供的另一种数据库迁移方法的流程示意图;
[0028]图5是本申请实施例提供的另一种数据库迁移方法的流程示意图;
[0029]图6是本申请实施例提供一种数据库迁移装置的框架示意图;
[0030]图7是本申请实施例提供的一种数据库迁移方法的电子设备的硬件结构框图;
[0031]图8是本申请实施例提供的一个区块链系统的结构示意图。
具体实施方式
[0032]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0033]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或子模块的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或子模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或子模块。
[0034]请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括服务器01和终端02。在实际应用中,服务器01以及终端02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0035]本申请实施例中,服务器01可以是独立的物理服务器,也本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库迁移方法,其特征在于,所述方法包括:分别获取所述源数据库的第一数据表信息和第一视图信息,以及所述目标数据库的第二数据表信息和第二视图信息;根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句;根据所述第二数据表信息和第二视图信息生成所述目标数据库对应的第二数据表的表创建语句;对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果;基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库。2.根据权利要求1所述的方法,其特征在于,所述基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库包括:基于所述表结构比较结果生成数据库迁移命令文件;获取针对所述数据库迁移命令文件的命令修改信息;基于所述命令修改信息执行所述数据库迁移命令文件,以将所述源数据库中的目标数据迁移至所述目标数据库。3.根据权利要求2所述的方法,其特征在于,在根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句之后,所述方法还包括:将所述源数据库对应的第一数据表的表创建语句存储为表结构文件;所述对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果包括:读取所述源数据库的表结构文件;以数据表为单位,基于所述表结构文件中第一数据表的表创建语句对所述表创建语句进行字符串对比,得到所述表结构比较结果。4.根据权利要求3所述的方法,其特征在于,所述以数据表为单位,基于所述表结构文件中第一数据表的表创建语句对所述表创建语句进行字符串对比,得到所述表结构比较结果包括:针对所述表结构文件中的每个第一数据表,基于所述第一数据表的表名,对所述第二数据表的表名进行字符串匹配,得到所述表结构比较结果中的表匹配结果;若所述表匹配结果为匹配到与所述第一数据表对应的第二数据表,对匹配到的第一数据表与第二数据表的表创建语句进行字符串遍历对比,得到所述表结构比较结果中的创建语句比较结果。5.根据权利要求4所述的方法,其特征在于,所述数据库迁移命令文件包括表创建迁移命令,所述基于所述表结构比较结果生成数据库迁移命令文件包括:若所述表匹配结果为未匹配到与所述第一数据表对应的第二数据表,确定未匹配到的第一数据表的表创建语句为第一目标创建语句;生成所述第一目标创建语句对应的表创建迁移命令。6.根据权利要求4所述的方法,其特征在于,所述数据库迁移命令文件包括表修改迁移
命令,所述基于所述表结构比较结果生成数据库迁移命令文件包括:若所述创建语句比较结果为所述匹配到的第一数据表与第二数据表中存在不一致的表创建语句,确定所述不一致的表创建语句为第二目标创建语句;生成所述第二目标创建语句对应的表修改迁移命令。7.根据权利要求4所述的方法,其特征在于,所述对匹配到的第一数据表与第二数据表的表创建语句进行字符串遍历对比,得到所述表结构比较结果中的创建语句比较结果包括:基于预设字符串匹配模式分别获取匹配到的第一数据表的表创建语句的域字段和第二数据表的表创建语句的域字段,所述域字段包括...

【专利技术属性】
技术研发人员:向禹帆郎正熠龚明华
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1