【技术实现步骤摘要】
数据库迁移方法、装置、设备和存储介质
[0001]本申请涉及数据库
,尤其涉及一种数据库迁移方法、装置、设备和存储介质。
技术介绍
[0002]数据库版本更新、扩容、分布式存储或硬件更新等场景中,普遍存在数据库迁移需求,目前常用的数据库迁移方案主要分为手动迁移和全自动迁移。其中,手动迁移由开发人员人工编写SQL语句进行数据库迁移,迁移成功率和效率低下,且容易出现错写和漏写等情况。而目前的全自动迁移方案均强依赖于且受限于数据库框架的自带功能,泛化能力差,如在数据库版本更新场景中,若更换了数据库框架或编程语言,会对上述全自动迁移方案造成极大影响,同时,由于其受限于数据库框架提供的功能,易造成迁移失败或数据迁移不完整;另外,迁移过程完全黑箱,无法针对敏感操作或危险操作进行可控管理,易造成数据损失。
[0003]因此,需要提供一种改进的数据库迁移方案,以解决上述现存问题。
技术实现思路
[0004]本申请提供了一种数据库迁移方法、装置和存储介质,具有较好的泛化能力,有效提高数据迁移的操作安全性。
[0005]一方面,本申请提供了一种数据库迁移方法,所述方法包括:
[0006]分别获取所述源数据库的第一数据表信息和第一视图信息,以及所述目标数据库的第二数据表信息和第二视图信息;
[0007]根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句;
[0008]根据所述第二数据表信息和第二视图信息生成所述目标数据库对应的第二数据表的表创建语句 ...
【技术保护点】
【技术特征摘要】
1.一种数据库迁移方法,其特征在于,所述方法包括:分别获取所述源数据库的第一数据表信息和第一视图信息,以及所述目标数据库的第二数据表信息和第二视图信息;根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句;根据所述第二数据表信息和第二视图信息生成所述目标数据库对应的第二数据表的表创建语句;对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果;基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库。2.根据权利要求1所述的方法,其特征在于,所述基于所述表结构比较结果进行数据库迁移,以将所述源数据库中的目标数据迁移至所述目标数据库包括:基于所述表结构比较结果生成数据库迁移命令文件;获取针对所述数据库迁移命令文件的命令修改信息;基于所述命令修改信息执行所述数据库迁移命令文件,以将所述源数据库中的目标数据迁移至所述目标数据库。3.根据权利要求2所述的方法,其特征在于,在根据所述第一数据表信息和第一视图信息生成所述源数据库对应的第一数据表的表创建语句之后,所述方法还包括:将所述源数据库对应的第一数据表的表创建语句存储为表结构文件;所述对所述第一数据表的表创建语句和所述第二数据表的表创建语句进行字符串对比,得到表结构比较结果包括:读取所述源数据库的表结构文件;以数据表为单位,基于所述表结构文件中第一数据表的表创建语句对所述表创建语句进行字符串对比,得到所述表结构比较结果。4.根据权利要求3所述的方法,其特征在于,所述以数据表为单位,基于所述表结构文件中第一数据表的表创建语句对所述表创建语句进行字符串对比,得到所述表结构比较结果包括:针对所述表结构文件中的每个第一数据表,基于所述第一数据表的表名,对所述第二数据表的表名进行字符串匹配,得到所述表结构比较结果中的表匹配结果;若所述表匹配结果为匹配到与所述第一数据表对应的第二数据表,对匹配到的第一数据表与第二数据表的表创建语句进行字符串遍历对比,得到所述表结构比较结果中的创建语句比较结果。5.根据权利要求4所述的方法,其特征在于,所述数据库迁移命令文件包括表创建迁移命令,所述基于所述表结构比较结果生成数据库迁移命令文件包括:若所述表匹配结果为未匹配到与所述第一数据表对应的第二数据表,确定未匹配到的第一数据表的表创建语句为第一目标创建语句;生成所述第一目标创建语句对应的表创建迁移命令。6.根据权利要求4所述的方法,其特征在于,所述数据库迁移命令文件包括表修改迁移
命令,所述基于所述表结构比较结果生成数据库迁移命令文件包括:若所述创建语句比较结果为所述匹配到的第一数据表与第二数据表中存在不一致的表创建语句,确定所述不一致的表创建语句为第二目标创建语句;生成所述第二目标创建语句对应的表修改迁移命令。7.根据权利要求4所述的方法,其特征在于,所述对匹配到的第一数据表与第二数据表的表创建语句进行字符串遍历对比,得到所述表结构比较结果中的创建语句比较结果包括:基于预设字符串匹配模式分别获取匹配到的第一数据表的表创建语句的域字段和第二数据表的表创建语句的域字段,所述域字段包括...
【专利技术属性】
技术研发人员:向禹帆,郎正熠,龚明华,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。