CN113821496B - 数据库迁移方法、系统、设备及计算机可读存储介质 - Google Patents

数据库迁移方法、系统、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113821496B
CN113821496B CN202111381882.7A CN202111381882A CN113821496B CN 113821496 B CN113821496 B CN 113821496B CN 202111381882 A CN202111381882 A CN 202111381882A CN 113821496 B CN113821496 B CN 113821496B
Authority
CN
China
Prior art keywords
target
statement
database
file
determining
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.)
Active
Application number
CN202111381882.7A
Other languages
English (en)
Other versions
CN113821496A (zh
Inventor
曾吉丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Mingyuan Cloud Technology Co Ltd
Original Assignee
Shenzhen Mingyuan Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Mingyuan Cloud Technology Co Ltd filed Critical Shenzhen Mingyuan Cloud Technology Co Ltd
Priority to CN202111381882.7A priority Critical patent/CN113821496B/zh
Publication of CN113821496A publication Critical patent/CN113821496A/zh
Application granted granted Critical
Publication of CN113821496B publication Critical patent/CN113821496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库迁移方法、系统、设备及计算机可读存储介质,所述方法包括获取数据库中的当前文件,确定进行语句转换的文本,为数据库迁移的数据转换提供数据来源;通过文件特征确定提取器,减少文件提取误差,基于提取器进行语句提取,从文件中将语句将语句提取出来,进行针对性转换,得到提取语句;从而确定目标数据库特征后,根据该提取语句和目标数据库特征生成目标语句,依据目标数据库特征进行语句转换,以确保转换后的语句可在目标数据库中正常运行,将目标语句回写至上述当前文件中,实现数据库文件转换,完成数据库迁移;扩大数据库迁移覆盖范围,提升数据库迁移质量;且通过自动化实现数据库迁移,提升数据库迁移效率。

Description

数据库迁移方法、系统、设备及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库迁移方法、系统、设备及计算机可读存储介质。
背景技术
SQLServer是一款由美国微软公司开发的商业、闭源关系型数据库,是目前主流数据库之一。客户使用SQLServer也常存在数据安全性质疑,由于闭源特性无法得知其运行原理。近几年,国家对于信息安全的重视程度越来越高,国产数据库的崛起,国产化的推进,成为了数据库切换的契机。在各领域存在大量从SQLServer切换到mysql(关系型数据库管理系统)、pgsql(对象关系型数据库管理系统)、达梦的诉求。数据库迁移是一个复杂的系统性工程,持续时间长,影响点和影响范围不确定,迁移后行为不一致,迁移质量无法保证。且在常规技术手段中即使投入大量测试资源也无法保证完全覆盖了所有业务场景。
发明内容
本发明的主要目的在于提供一种数据库迁移方法、系统、设备及计算机可读存储介质。旨在解决如何提升数据库迁移质量的技术问题。
为实现上述目的,本发明提供一种数据库迁移方法,包括如下步骤:
获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
根据所述提取器和所述当前文件确定提取语句;
确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中。
可选地,所述对所述当前文件进行语句提取,得到提取语句的步骤包括:
基于所述提取语句生成语法树;
根据所述语法树和所述目标数据库特征生成目标语句。
可选地,所述根据所述提取器和所述当前文件确定提取语句的步骤包括:
调用提取器提取所述当前文件中的当前语句;
判断所述当前语句是否为合法语句;
若是,则确定当前语句为提取语句。
可选地,所述根据所述语法树和所述目标数据库特征生成目标语句的步骤包括:
确定与所述目标数据库特征中的类型特征匹配的转换器;
调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换,生成目标语句。
可选地,所述调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换的步骤包括:
调用所述转换器遍历所述语法树对应的节点;
确定是否存在与预设解析器匹配的目标节点;
若存在所述目标节点,则调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换。
可选地,所述调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换的步骤包括:
确定各所述预设解析器对应的调用顺序;
按照所述调用顺序依次调用各所述预设解析器基于目标数据库特征中的语法特征对所述预设解析器对应的目标节点进行检索,返回目标语句片段;
所述生成目标语句的步骤包括:
依次获取各所述目标语句片段,并将各所述目标语句片段进行拼装处理,生成目标语句。
可选地,其特征在于,所述将所述目标语句回写至所述当前文件中的步骤之前,还包括:
依据所述目标语句执行语句测试;
若所述语句测试成功,则执行所述将所述目标语句回写至所述当前文件中的步骤。
此外,为实现上述目的,本发明还提供一种数据库迁移系统,所述数据库迁移系统包括:
特征确定模块,用于获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
语句提取模块,用于根据所述提取器和所述当前文件确定提取语句;
语句转换模块,用于确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中。
此外,为实现上述目的,本发明还提供一种数据库迁移设备,所述数据库迁移设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库迁移程序,其中:所述数据库迁移程序被所述处理器执行时实现如上所述的数据库迁移方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据库迁移程序,所述数据库迁移程序被处理器执行时实现如上所述的数据库迁移方法的步骤。
本发明提出的一种数据库迁移方法、系统、设备及计算机可读存储介质,获取数据库中的当前文件,从当前数据库中找到进行语句转换的文本,为数据库迁移的数据转换提供数据来源;通过文件特征确定对应的提取器,确保数据库迁移的原始文件提取的准确性,减少文件提取误差,基于该提取器对当前文件进行语句提取,从文件中将语句提取出来,进行针对性转换,得到提取语句;从而在确定目标数据库特征后,根据该提取语句和目标数据库特征生成目标语句,依据目标数据库特征对提取语句进行语句转换,以确保转换后的语句可在目标数据库中正常运行,进而将该目标语句回写至上述当前文件中,实现数据库文件转换,以完成数据库迁移;扩大数据库迁移覆盖范围,提升数据库迁移质量;且通过自动化实现数据库迁移,缩短迁移时间,提升数据库迁移效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明数据库迁移方法第一实施例的流程示意图;
图3为本发明一实施例的应用流程示意图;
图4为本发明一实施例的提取器提取示意图;
图5为本发明一实施例的转换器应用示意图;
图6为本发明数据库迁移系统结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,数据库迁移设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,数据库迁移设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在硬件设备移动到耳边时,关闭显示屏和/或背光。当然,硬件设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的数据库迁移设备的结构并不构成对数据库迁移设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据库迁移程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据库迁移程序,并执行以下操作:
获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
根据所述提取器和所述当前文件确定提取语句;
确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中。
本发明应用于数据库迁移设备的具体实施例与下述应用数据库迁移方法的各实施例基本相同,在此不作赘述。
请参照图2,图2为本发明数据库迁移方法第一实施例的流程示意图,其中,所述数据库迁移方法包括如下步骤:
步骤S100,获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
本实施例中,需要说明的是,在进行数据库迁移时,是将当前数据库中的数据库文件转换为目标数据库可以运行的文件。本实施例支持目前主流“低代码平台开发”和“自由代码开发”两种模式,支持基于“元数据驱动”的数据库进行迁移。如SQLServer迁移到其他数据库。具体地,获取数据库中的当前文件的步骤包括:针对需要转移的数据库,对其中的目标目录进行扫描;递归检索出所有文件夹及其子文件夹,得到目录结果;基于所述目录结果,循环遍历所述目录结果中的文件,将所述文件作为当前文件。也就是说当前文件是指针对需要进行迁移的数据库,通过目录扫描和递归检索得出的所有文件夹及其子文件夹中的文件。即需要进行语句转换的文件。文件特征指的是当前文件的特征信息,该特征信息用于关联提取器。预先通过设定规则,按照规则将当前文件与提取器关联起来,其中当前文件所包含的用于关联提取器的信息为文件特征。具体地,获取到数据库中的当前文件后,分析当前文件对应的文件特征,通过该文件特征调用与之对应的提取器。
步骤S200,根据所述提取器和所述当前文件确定提取语句;
本实施例中,需要说明的是,提取语句是指在对当前文件进行语句提取后生成的语句。对语句进行提取可以是通过设定提取规则,按照提取规则对当前文件进行语句提取,得到提取语句。其中,提取规则可以为通过当前文件本身的文件特征,进行提取方式的限定;也可以是预先设置有文件特征与提取器之间的关系映射,在获取当前文件后,依据文件特征检索对应的提取器,通过该检索到的提取器进行语句提取。通过提取器将当前文件分析整理为可以进行转换的文件,进而基于该整理后的当前文件进行语句的提取,得提取语句。通过提取器对文件进行预处理,得到提取语句,为数据库迁移提供合法语句。
具体地,获取数据库中的当前文件,通过提取器对该当前文件进行文件中的语句的提取,得到提取语句。
参考图4,图4中包括提取器提取的数据源,其中,对于低代码平台分为零散语句和元数据驱动,对于元数据驱动有计算公式和视图;对于零散语句有Dapper、MyBatis、XmlCommamd、SQL脚本。
步骤S300,确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中。
本实施例中,需要说明的是,目标数据库特征是指进行数据库迁移动作时的进行数据库文件迁入的数据库所对应的特征信息,也即目标数据库的特征信息,依据该目标数据库特征可以确定数据库文件迁出的一方对应的数据库文件在进行数据库迁移时所需要转换的目标。目标语句是指进行语句转换后生成的适用于迁入数据库文件的数据库运行的语句。例如,从SQLServer迁移到MySQL时,目标数据库特征即为MySQL对应的特征信息;目标语句即为对SQLServer对应的语句进行转换后生成的MySQL对应的语句。具体地,获取目标数据库对应的目标数据库特征,基于该目标数据库特征在提取语句的基础上生成目标语句,并将目标语句回写至当前文件中。其中,回写是指将生成的目标语句写入当前文件对应的位置,以使后续目标数据库运行该当前文件时能够正常运行。
本发明实施例中,获取数据库中的当前文件,从当前数据库中找到进行语句转换的文本,为数据库迁移的数据转换提供数据来源;通过文件特征确定对应的提取器,确保数据库迁移的原始文件提取的准确性,减少文件提取误差,基于该提取器对当前文件进行语句提取,从文件中将语句提取出来,进行针对性转换,得到提取语句;从而在确定目标数据库特征后,根据该提取语句和目标数据库特征生成目标语句,依据目标数据库特征对提取语句进行语句转换,以确保转换后的语句可在目标数据库中正常运行,进而将该目标语句回写至上述当前文件中,实现数据库文件转换,以完成数据库迁移;扩大数据库迁移覆盖范围,提升数据库迁移质量;且通过自动化实现数据库迁移,缩短迁移时间,提升数据库迁移效率。
进一步地,基于本发明数据库迁移方法第一实施例,提出本发明数据库迁移方法第二实施例,所述根据所述提取语句和所述目标数据库特征生成目标语句的步骤,包括:
步骤a,基于所述提取语句生成语法树;
步骤b,根据所述语法树和所述目标数据库特征生成目标语句。
本实施例中,需要说明的是,ANTLR(Another Tool for Language Recognition,开源语法分析器)是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。ANTLR,其前身是PCCTS,它为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架。本实施例中,基于ANTLR4生成语法树。例如,在进行SQLServer迁移到其他数据库时,生成SQLServer对应的语法树。在获取提取语句后,将基于该提取语句生成语法树。具体地,确定提取语句,对该提取语句进行预处理语法解析,预处理语法解析成功,将依据该预处理语法解析对应的结果生成语法树;预处理语法解析失败,则将抛出失败项,返回手工处理。其中,预处理语法解析是指对提取语句进行语法解析的过程,包括对提取语句进行校验。例如,当前提取语句中包括有不具备语义性的占用符时,将对该提取语句中的占用符进行替换。
具体地,确定提取语句,对该提取语句进行预处理语法解析以生成语法树,获取目标数据库对应的目标数据库特征,基于该目标数据库特征在语法树的基础上生成目标语句。
参考图3,在本实施例中,通过提取器和转换器实现数据迁移的方案。具体地,提取器从文件中进行语句的提取,并将提取语句发送至转换器,转换器接收到该提取语句后,生成语法树,并筛选出与目标数据库对应的数据库转换器实现语句的转换,转换完成后,将转换语句发送至提取器进行测试,测试成功后,提取器将会把转换语句回写至文件中。
进一步地,根据所述提取器和所述当前文件确定提取语句的步骤包括:
步骤c,调用提取器提取所述当前文件中的当前语句;
步骤d,判断所述当前语句是否为合法语句;
步骤e,若是,则确定当前语句为提取语句。
本实施例中,需要说明的是,当前语句是指当前文件中的SQL语句;合法语句是指符合预先设置的语句判断规则的语句,其中语句判断规则中包含有是否支持自动转换,是否支持代码SQL拼接,是否为完整语句,是否为可执行语句等对语句的可执行性或可操作性进行判断的标准。具体地,确定提取器后,调用提取器提取当前文件中的SQL语句为当前语句,基于预设的语句判断规则确定当前语句是否合法,若是,则将该合法语句作为提取语句;若该当前语句为非合法语句,则抛出失败项,等到结束后返人工处理。
通过设置语句判断,在进行数据库文件的语句提取的同时进行语句的合法性判断,确保数据迁移质量,提升数据迁移的合法性。
进一步地,根据所述语法树和所述目标数据库特征生成目标语句的步骤包括:
步骤f,确定与所述目标数据库特征中的类型特征匹配的转换器;
步骤g,调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换,生成目标语句。
本实施例中,需要说明的是,转换器用于进行数据库语句转换;目标数据库特征是指目标数据库对应的特征信息,包括目标数据库对应的类型特征、语法特征等相关特征信息。预先针对不同的目标数据库设置有不同的转换器,可通过与目标数据库特征中对应的类型特征是否匹配来确定转换器。语法特征是指目标数据库对应的数据类型,数据状态等特征信息,例如,元数据表中对应的表是否区分大小写。基于该语法特征转换生成的目标语句为目标数据库可执行语句。目标语句是指经过转换器转换之后生成的适用于目标数据库运行的语句。具体地,确定目标数据库特征后,依据目标数据库中的类型特征确定与之对应的转换器,调用该转换器按照目标数据库特征对应的语法特征对语句进行转换、拼装总装等转换处理,生成目标语句。
通过与目标数据库对应的类型特征匹配的转换器进行转换,提升语句转换后的可执行性,并基于目标数据库对应的语法特征进行语句转换,提升转换成功率,提升数据库迁移质量。
进一步地,调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换的步骤包括:
步骤h,调用所述转换器遍历所述语法树对应的节点;
步骤i,确定是否存在与预设解析器匹配的目标节点;
步骤j,若存在所述目标节点,则调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换。
本实施例中,需要说明的是,预设解析器用于在转换器中调用对语法树的节点进行检索,并依据该节点进行语句转换。预设解析器是预先写好的,只接收特定节点的解析器,在找到与之匹配的节点时,对该节点进行解析。可根据设置节点对应的语法节点类型与预设解析器之间的映射关系,用于关联节点与解析器。目标节点即为语法树中与预设解析器匹配的节点,即预设解析器可以进行解析的特定节点。具体地,确定转换器后,调用转换器遍历语法树,挨个节点处理。基于当前节点对应的语法节点类型确定是否有匹配的预设解析器,若有匹配的预设解析器,则确定该节点为目标节点。基于目标节点,调用与目标节点匹配的预设解析器基于目标数据库特征中的语法特征对该目标节点进行语句转换;若没有匹配的预设解析器,则继续递归语法树对应的树结构,查找下一节点是否存在有匹配的预设解析器,直到找到最底层节点,基于该最底层节点对应的语法节点类型确定是否与预设解析器匹配,若最底层节点也与预设解析器不匹配,则输出异常结果。
参考图5,转换器接收到提取语句后,开始进行语句预处理,进行语法解析,生成语法树,对语法树进行遍历,得到下一个语法节点,根据语法节点类型获取解析器,若当前节点有匹配的解析器,则依据解析器获取目标语句片段;若当前节点没有匹配的解析器,则判断是否存在子节点,若不存在子节点则输出异常结果,若存在子节点,则遍历该子节点,得到下一个语法节点,基于该语法节点进一步确定是否有匹配的解析器。最后进行合并语法树处理结果,输出目标语句,转换器结束工作。
基于语法树的节点进行语句转换,并通过调用解析器进行解析,提升数据库迁移时语句转化的准确性。
进一步地,调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换的步骤包括:
步骤k,确定各所述预设解析器对应的调用顺序;
步骤l,按照所述调用顺序依次调用各所述预设解析器基于目标数据库特征中的语法特征对所述预设解析器对应的目标节点进行检索,返回目标语句片段;
所述生成目标语句的步骤包括:
步骤m,依次获取各所述目标语句片段,并将各所述目标语句片段进行拼装处理,生成目标语句。
本实施例中,需要说明的是,一个语句可能会对应多个预设解析器,该多个预设解析器分别映射不同的文本,在各预设解析器依据目标节点分别确定对应的文本后,依据预设规则,对个文本进行拼装处理,以得到目标语句。预设规则是指目标数据库对应的语法、词法顺序,在进行节点与预设解析器匹配时用于限定的解析器解析文本顺序,即各解析器映射文本的拼接顺序。基于提取语句生成的语法树,其目标节点对应语句的某个片段,因此,预设解析器返回的为处理后的目标语句片段。具体地,按照预设规则对应的顺序确定各预设解析器对应的调用顺序,按照该调用顺序依次调用预设解析器基于目标数据库中的语法特征,即目标数据库对应的数据类型,数据状态等特征信息对目标节点进行检索,并处理后返回目标语句片段。按照目标语句片段的生成顺序,即预设规则中限定的文本拼接顺序依次获取各预设解析器返回的目标语句片段,将各语句片段按照获取顺序进行拼装处理,得到目标语句。
按照目标数据库对应的语法、词法顺序对语句转化过程进行限定,最终实现语句按照目标数据库语法、词法顺序的转换,确保数据库迁移前后行为一致,提升数据库迁移的准确性。
进一步地,将所述目标语句回写至所述当前文件中的步骤之前,还包括:
步骤n,依据所述目标语句执行语句测试;
步骤o,若所述语句测试成功,则执行所述将所述目标语句回写至所述当前文件中的步骤。
本实施例中,需要说明的是,语句测试是指针对目标语句进行的自动化测试,预先针对数据库迁移前后对应的数据库设计测试用例,依据测试用例执行测试操作,用于验证数据库迁移前后功能是否正常。具体地,转换器生成目标语句后,将该目标语句输出至提取器,提取器获取目标语句后,执行自动化语句测试,判断语句测试是否成功,若语句测试执行失败,则输出测试结果,返回手工处理。若语句测试执行成功,则将该测试成功的目标语句回写至当前文件中。从而实现当前文件中语句的转换,进而实现数据库的迁移。
对目标语句进行测试后,再回写至数据库中,确保迁移后的数据库语句的准确性,以及提升在目标数据库中的适配能力,确保数据库迁移的质量。
此外,参考图6,本发明还提出一种数据库迁移系统,其特征在于,所述数据库迁移系统包括:
特征确定模块2001,用于获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
语句提取模块2002,用于根据所述提取器和所述当前文件确定提取语句;
语句转换模块2003,用于确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中。
可选地,所述特征确定模块2001,还用于:
调用提取器提取所述当前文件中的当前语句;
判断所述当前语句是否为合法语句;
若是,则确定当前语句为提取语句。
可选地,所述语句转换模块2003,还用于:
确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器;
根据所述提取器和所述当前文件确定提取语句。
可选地,所述语句转换模块2003,还用于:
确定与所述目标数据库特征中的类型特征匹配的转换器;
调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换,生成目标语句。
可选地,所述语句转换模块2003,还用于:
调用所述转换器遍历所述语法树对应的节点;
确定是否存在与预设解析器匹配的目标节点;
若存在所述目标节点,则调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换。
可选地,所述语句转换模块2003,还用于:
确定各所述预设解析器对应的调用顺序;
按照所述调用顺序依次调用各所述预设解析器基于目标数据库特征中的语法特征对所述预设解析器对应的目标节点进行检索,返回目标语句片段;
依次获取各所述目标语句片段,并将各所述目标语句片段进行拼装处理,生成目标语句。
可选地,所述语句转换模块2003,还用于:
依据所述目标语句执行语句测试;
若所述语句测试成功,则执行所述将所述目标语句回写至所述当前文件中的步骤。
本发明数据库迁移系统的具体实施方式与上述数据库迁移方法各实施例基本相同,在此不再赘述。
此外,本发明还提出一种数据库迁移设备,其特征在于,所述数据库迁移设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库迁移程序,其中:所述数据库迁移程序被所述处理器执行时实现本发明各个实施例所述的数据库迁移方法。
此外,本发明还提出一种计算机可读存储介质,其上存储有数据库迁移程序。所述计算机可读存储介质可以是图1的终端中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的设备执行本发明各个实施例所述的数据库迁移方法。
可以理解的是,在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第N实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种数据库迁移方法,其特征在于,包括如下步骤:
获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器,其中,预先通过设定规则将当前文件与提取器关联,其中当前文件中包含的用于关联提取器的信息为文件特征;
根据所述提取器和所述当前文件确定提取语句;
确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中;
所述根据所述提取语句和所述目标数据库特征生成目标语句的步骤包括:
基于所述提取语句生成语法树;
根据所述语法树和所述目标数据库特征生成目标语句,其中,确定所述语法树对应的节点中是否存在与预设解析器匹配的目标节点,若存在所述目标节点,则调用所述预设解析器对所述目标节点进行语句转换。
2.根据权利要求1所述的数据库迁移方法,其特征在于,所述根据所述提取器和所述当前文件确定提取语句的步骤包括:
调用提取器提取所述当前文件中的当前语句;
判断所述当前语句是否为合法语句;
若是,则确定当前语句为提取语句。
3.根据权利要求1所述的数据库迁移方法,其特征在于,所述根据所述语法树和所述目标数据库特征生成目标语句的步骤包括:
确定与所述目标数据库特征中的类型特征匹配的转换器;
调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换,生成目标语句。
4.根据权利要求3所述的数据库迁移方法,其特征在于,所述调用所述转换器基于目标数据库特征中的语法特征对所述语法树进行语句转换的步骤包括:
调用所述转换器遍历所述语法树对应的节点;
确定是否存在与预设解析器匹配的目标节点;
若存在所述目标节点,则调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换。
5.根据权利要求4所述的数据库迁移方法,其特征在于,所述调用所述预设解析器基于所述目标数据库特征中的语法特征对所述目标节点进行语句转换的步骤包括:
确定各所述预设解析器对应的调用顺序;
按照所述调用顺序依次调用各所述预设解析器基于目标数据库特征中的语法特征对所述预设解析器对应的目标节点进行检索,返回目标语句片段;
所述生成目标语句的步骤包括:
依次获取各所述目标语句片段,并将各所述目标语句片段进行拼装处理,生成目标语句。
6.根据权利要求1~5中任一项所述的数据库迁移方法,其特征在于,所述将所述目标语句回写至所述当前文件中的步骤之前,还包括:
依据所述目标语句执行语句测试;
若所述语句测试成功,则执行所述将所述目标语句回写至所述当前文件中的步骤。
7.一种数据库迁移系统,其特征在于,所述数据库迁移系统包括:
特征确定模块,用于获取数据库中的当前文件,确定所述当前文件对应的文件特征,并基于所述文件特征确定提取器,其中,预先通过设定规则将当前文件与提取器关联,其中当前文件中包含的用于关联提取器的信息为文件特征;
语句提取模块,用于根据所述提取器和所述当前文件确定提取语句;
语句转换模块,用于确定目标数据库特征,根据所述提取语句和所述目标数据库特征生成目标语句,将所述目标语句回写至所述当前文件中;
所述语句转换模块,还用于:
基于所述提取语句生成语法树;
根据所述语法树和所述目标数据库特征生成目标语句,其中,确定所述语法树对应的节点中是否存在与预设解析器匹配的目标节点,若存在所述目标节点,则调用所述预设解析器对所述目标节点进行语句转换。
8.一种数据库迁移设备,其特征在于,所述数据库迁移设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库迁移程序,其中:所述数据库迁移程序被所述处理器执行时实现如权利要求1至6中任一项所述的数据库迁移方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据库迁移程序,所述数据库迁移程序被处理器执行时实现如权利要求1至6中任一项所述的数据库迁移方法的步骤。
CN202111381882.7A 2021-11-22 2021-11-22 数据库迁移方法、系统、设备及计算机可读存储介质 Active CN113821496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111381882.7A CN113821496B (zh) 2021-11-22 2021-11-22 数据库迁移方法、系统、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111381882.7A CN113821496B (zh) 2021-11-22 2021-11-22 数据库迁移方法、系统、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113821496A CN113821496A (zh) 2021-12-21
CN113821496B true CN113821496B (zh) 2022-03-01

Family

ID=78917931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111381882.7A Active CN113821496B (zh) 2021-11-22 2021-11-22 数据库迁移方法、系统、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113821496B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116860716B (zh) * 2023-06-16 2023-12-22 北京原点数安科技有限公司 数据迁移方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527815A (zh) * 2020-12-02 2021-03-19 平安医疗健康管理股份有限公司 数据库的脚本迁移方法、装置、计算机设备和存储介质
CN112541002A (zh) * 2020-12-09 2021-03-23 北京奇艺世纪科技有限公司 程序语言转换方法、装置、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527815A (zh) * 2020-12-02 2021-03-19 平安医疗健康管理股份有限公司 数据库的脚本迁移方法、装置、计算机设备和存储介质
CN112541002A (zh) * 2020-12-09 2021-03-23 北京奇艺世纪科技有限公司 程序语言转换方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113821496A (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
CN108549538B (zh) 一种代码检测方法、装置、存储介质及测试终端
US9122540B2 (en) Transformation of computer programs and eliminating errors
US8364696B2 (en) Efficient incremental parsing of context sensitive programming languages
CN108647355A (zh) 测试用例的展示方法、装置、设备及存储介质
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
CN110968601A (zh) 一种数据查询处理方法及装置
CN111143403B (zh) Sql转换方法及装置、存储介质
CN108694108B (zh) 一种iOS崩溃数据分类与统计的方法和装置
CN113901083B (zh) 基于多解析器的异构数据源操作资源解析定位方法和设备
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
CN106570095B (zh) 一种xml数据的操作方法及设备
CN113821496B (zh) 数据库迁移方法、系统、设备及计算机可读存储介质
CN111488155A (zh) 着色语言翻译方法
US11775290B2 (en) Detection of API backward compatibility across software versions
US10372760B2 (en) Building queries directed to objects hosted on clouds
CN112000690B (zh) 解析结构化操作语句的方法和装置
CN114579203B (zh) 脚本文件检查方法、装置、电子设备及存储介质
CN109597638B (zh) 基于实时计算引擎解决数据处理、设备联动的方法及装置
CN113807077A (zh) 自然语言测试脚本解析处理方法、装置及电子设备
CN112130860A (zh) Json对象解析方法、装置、电子设备及存储介质
CN114116683B (zh) 计算平台的多语法处理方法、设备及可读存储介质
CN107818100B (zh) 一种sql语句执行方法及装置
US20190019054A1 (en) Contact Information Identification System
CN111151008B (zh) 游戏运营数据的校验方法、装置、配置后台及介质
CN109446078B (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