一种配置脚本的导出方法、装置及存储介质转让专利

申请号 : CN202210168708.2

文献号 : CN114237699B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王彬张臣云杨河钟园意胡莲辜振涛

申请人 : 四川信用通数字科技股份有限公司

摘要 :

本申请公开了一种配置脚本的导出方法、装置及存储介质,用于提高获取目标配置脚本sql文件的效率及准确率。本申请方法包括:设置预设拦截规则,预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;根据设置指令设置目标版本及目标需求单号,目标版本与目标需求单号关联,目标需求单号与目标需求业务绑定;若检测到目标需求业务的低代码开发完成指令,则获取目标需求单号对应的第一sql语句;根据预设拦截规则拦截第一sql语句获取第一目标sql语句;将第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;根据目标导出指令及第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。

权利要求 :

1.一种配置脚本的导出方法,其特征在于,所述导出方法包括:设置预设拦截规则,所述预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;

根据设置指令设置目标版本及目标需求单号,所述目标版本与所述目标需求单号关联,所述目标需求单号与目标需求业务绑定;

若检测到所述目标需求业务的低代码开发完成指令,则获取所述目标需求单号对应的第一sql语句;

根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句;

将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;

根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。

2.根据权利要求1所述的导出方法,其特征在于,在所述生成目标配置脚本sql文件之后,所述导出方法还包括:

在目标环境执行所述目标配置脚本sql文件。

3.根据权利要求2所述的导出方法,其特征在于,所述目标环境为开发环境、测试环境或生产环境。

4.根据权利要求1所述的导出方法,其特征在于,所述根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句包括:预编译所述第一sql语句获取目标数据定义语言的类型、目标表名及目标数据操纵语言的类型;

若所述目标数据定义语言的类型、目标表名或目标数据操纵语言的类型符合所述预设拦截规则,则获取所述目标数据定义语言及所述目标数据操纵语言对应的第一目标sql语句。

5.根据权利要求4所述的导出方法,其特征在于,所述将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库包括:若所述目标数据定义语言的类型为create、alter或drop,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据定义语言的类型及所述第一目标sql语句,并存入数据库;

若所述目标数据操纵语言的类型为delete,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据操纵语言的类型及第一目标sql语句,并存入数据库;

若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、所述目标数据操纵语言的类型及所述第一目标sql语句 ,并存入数据库;

若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值不为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、所述目标数据操纵语言的类型、所述主键列及所述主键值,并存入数据库。

6.根据权利要求1所述的导出方法,其特征在于,所述根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件包括:若所述目标导出指令为根据目标版本导出,则按照存入时间升序查询所述目标版本所关联的目标需求单号;

按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;

将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第二目标需求配置记录,并将所述第二目标需求配置记录与所述第一目标需求配置记录合并为第三目标需求配置记录;

根据所述第三目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。

7.根据权利要求1所述的导出方法,其特征在于,所述根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件包括:若所述目标导出指令为根据目标需求单号导出,则按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;

查询所述目标需求单号所关联的目标版本;

将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第四目标需求配置记录,并将所述第四目标需求配置记录与所述第一目标需求配置记录合并为第五目标需求配置记录;

根据所述第五目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。

8.根据权利要求1至7中任一项所述的导出方法,其特征在于,在所述将所述第一目标需求配置记录存入数据库之前,所述导出方法还包括:判断数据库中是否存在与所述第一目标需求配置记录相同的配置记录;

所述将所述第一目标需求配置记录存入数据库包括:若存在,则更新所述第一目标需求配置记录的存入时间;

若不存在,则将所述第一目标需求配置记录存入数据库。

9.一种配置脚本的导出装置,其特征在于,所述导出装置包括:第一设置单元,用于设置预设拦截规则,所述预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;

第二设置单元,用于根据设置指令设置目标版本及目标需求单号,所述目标版本与所述目标需求单号关联,所述目标需求单号与目标需求业务绑定;

获取单元,用于若检测到所述目标需求业务的低代码开发完成指令,则获取所述目标需求单号对应的第一sql语句;

拦截单元,用于根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句;

拆解单元,用于将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;

导出单元,用于根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行如权利要求1至8中任一项所述方法。

说明书 :

一种配置脚本的导出方法、装置及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种配置脚本的导出方法、装置及存储介质。

背景技术

[0002] 当下,在云计算技术向全栈云和智能云发展的过程中,低代码开发甚至是无代码开发时一个重要的发展方向,其具有上手快、开发快、运维快等特点,使得低代码开发技术
越来越流行。
[0003] 但是,在使用低代码进行开发时,不可避免的会遇到一些问题。低代码图形化界面的操作最终体现在数据库中的各种配置数据,例如:表单配置数据、报表配置数据等。同一
项目不同的环境中,如开发环境、测试环境或生产环境,针对同一需求,需要业务人员在不
同的环境中都进行一遍目标表单的配置。但是因为业务配置人员不同或同一人员操作错误
等均会导致目标表单在各个环境中不一致。当前主流的解决方法为,以某一环境为基础由
开发人员手工整理出相应的数据库配置脚本文件,再在其他需要同步配置的环境执行该配
置脚本文件,但是该方法人为操作的效率低,且出错率较高。

发明内容

[0004] 本申请提供了一种配置脚本的导出方法、装置及存储介质,用于提高获取目标配置脚本sql文件的效率及准确率。
[0005] 本申请第一方面提供了一种配置脚本的导出方法,包括:
[0006] 设置预设拦截规则,所述预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0007] 根据设置指令设置目标版本及目标需求单号,所述目标版本与所述目标需求单号关联,所述目标需求单号与目标需求业务绑定;
[0008] 若检测到所述目标需求业务的低代码开发完成指令,则获取所述目标需求单号对应的第一sql语句;
[0009] 根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句;
[0010] 将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;
[0011] 根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0012] 可选地,在所述生成目标配置脚本sql文件之后,所述方法还包括:
[0013] 在目标环境执行所述目标配置脚本sql文件。
[0014] 可选地,所述目标环境为开发环境、测试环境或生产环境。
[0015] 可选地,所述根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句包括:
[0016] 预编译所述第一sql语句获取目标数据定义语言的类型、目标表名及目标数据操纵语言的类型;
[0017] 若所述目标数据定义语言的类型、目标表名或目标数据操纵语言的类型符合所述预设拦截规则,则获取所述目标数据定义语言及所述目标数据操纵语言对应的第一目标
sql语句。
[0018] 可选地,所述将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库包括:
[0019] 若所述目标数据定义语言的类型为create、alter或drop,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据定义语言的类型及所述第一目标sql语句,并
存入数据库;
[0020] 若所述目标数据操纵语言的类型为delete,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据操纵语言的类型及第一目标sql语句,并存入数据库;
[0021] 若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、所
述目标数据操纵语言的类型及所述第一目标sql语言,并存入数据库;
[0022] 若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值不为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、
所述目标数据操纵语言的类型、所述主键列及所述主键值,并存入数据库。
[0023] 可选地,所述根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件包括:
[0024] 可选地,若所述目标导出指令为根据目标版本导出,则按照存入时间升序查询所述目标版本所关联的目标需求单号;
[0025] 按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;
[0026] 将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第二目标需求配置记录,并将所述第二目标需求配置记录与所述第一目标需
求配置记录合并为第三目标需求配置记录;
[0027] 根据所述第三目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0028] 可选地,所述根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件包括:
[0029] 若所述目标导出指令为根据目标需求单号导出,则按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;
[0030] 查询所述目标需求单号所关联的目标版本;
[0031] 将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第四目标需求配置记录,并将所述第四目标需求配置记录与所述第一目标需
求配置记录合并为第五目标需求配置记录;
[0032] 根据所述第五目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0033] 可选地,在所述将所述第一目标需求配置记录存入数据库之前,所述导出方法还包括:
[0034] 判断数据库中是否存在与所述第一目标需求配置记录相同的配置记录;
[0035] 若存在,则更新所述第一目标需求配置记录的存入时间;
[0036] 若不存在,则将所述第一目标需求配置记录存入数据库。
[0037] 本申请第二方面提供了一种配置脚本的导出装置,包括:
[0038] 第一设置单元,用于设置预设拦截规则,所述预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0039] 第二设置单元,用于根据设置指令设置目标版本及目标需求单号,所述目标版本与所述目标需求单号关联,所述目标需求单号与目标需求业务绑定;
[0040] 获取单元,用于若检测到所述目标需求业务的低代码开发完成指令,则获取所述目标需求单号对应的第一sql语句;
[0041] 拦截单元,用于根据所述预设拦截规则拦截所述第一sql语句获取第一目标sql语句;
[0042] 拆解单元,用于将所述第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;
[0043] 导出单元,用于根据目标导出指令及所述第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0044] 可选地,所述导出装置还包括:
[0045] 执行单元,用于在目标环境执行所述目标配置脚本sql文件。
[0046] 可选地,所述目标环境为开发环境、测试环境或生产环境。
[0047] 可选地,所述拦截单元具体用于:
[0048] 预编译所述第一sql语句获取目标数据定义语言的类型、目标表名及目标数据操纵语言的类型;
[0049] 若所述目标数据定义语言的类型、目标表名或目标数据操纵语言的类型符合所述预设拦截规则,则获取所述目标数据定义语言及所述目标数据操纵语言对应的第一目标
sql语句。
[0050] 可选地,所述拆解单元具体用于:
[0051] 若所述目标数据定义语言的类型为create、alter或drop,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据定义语言的类型及所述第一目标sql语句,并
存入数据库;
[0052] 若所述目标数据操纵语言的类型为delete,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标数据操纵语言的类型及第一目标sql语句,并存入数据库;
[0053] 若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、所
述目标数据操纵语言的类型及所述第一目标sql语言,并存入数据库;
[0054] 若所述目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若所述主键值不为空,则将所述第一目标sql语句拆解为所述目标需求单号、所述目标表名、
所述目标数据操纵语言的类型、所述主键列及所述主键值,并存入数据库。
[0055] 可选地,所述导出单元具体用于:
[0056] 若所述目标导出指令为根据目标版本导出,则按照存入时间升序查询所述目标版本所关联的目标需求单号;
[0057] 按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;
[0058] 将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第二目标需求配置记录,并将所述第二目标需求配置记录与所述第一目标需
求配置记录合并为第三目标需求配置记录;
[0059] 根据所述第三目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0060] 可选地,所述导出单元具体用于:
[0061] 若所述目标导出指令为根据目标需求单号导出,则按照存入时间升序查询所述目标需求单号对应的第一目标需求配置记录;
[0062] 查询所述目标需求单号所关联的目标版本;
[0063] 将所述目标版本、所述目标需求单号及所述第一目标需求配置记录根据查询结果按顺序转化为第四目标需求配置记录,并将所述第四目标需求配置记录与所述第一目标需
求配置记录合并为第五目标需求配置记录;
[0064] 根据所述第五目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0065] 可选地,所述导出装置还包括:
[0066] 判断单元,用于判断数据库中是否存在与所述第一目标需求配置记录相同的配置记录;
[0067] 所述拆解单元具体用于:
[0068] 若存在,则更新所述第一目标需求配置记录的存入时间;
[0069] 若不存在,则将所述第一目标需求配置记录存入数据库。
[0070] 本申请第三方面提供了一种配置脚本的导出装置,所述导出装置包括:
[0071] 处理器、存储器、输入输出单元以及总线;
[0072] 所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
[0073] 所述存储器保存有程序,所述处理器调用所述程序以执行第一方面以及第一方面中任一项可选的一种配置脚本的导出方法。
[0074] 本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面以及第一方面中任一项可选的一种配
置脚本的导出方法。
[0075] 从以上技术方案可以看出,本申请具有以下优点:设置预设拦截规则,根据设置指令设置目标版本及目标需求单号,目标版本与目标需求单号关联,目标需求单号与目标需
求业务绑定,若检测到目标需求业务的低代码开发完成指令,则获取目标需求单号对应的
第一sql语句;根据预设拦截规则拦截第一sql语句获取第一目标sql语句;将第一目标sql
语句拆解为第一目标需求配置记录,并存入数据库;根据目标导出指令及第一目标需求配
置记录导出第二目标sql语句,生成目标配置脚本sql文件。通过上述方法,由终端导出目标
配置脚本sql文件,不需要开发人员手工整理相应的配置脚本sql文件,提高了获取目标配
置脚本sql文件的效率,并且提升了准确率。

附图说明

[0076] 为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0077] 图1为本申请提供的一种配置脚本的导出方法一个实施例流程示意图;
[0078] 图2‑a为本申请提供的一种配置脚本的导出方法另一个实施例流程示意图;
[0079] 图2‑b为本申请提供的一种配置脚本的导出方法另一个实施例流程示意图;
[0080] 图3‑a为本申请提供的一种配置脚本的导出装置一个实施例结构示意图;
[0081] 图3‑b为本申请提供的一种配置脚本的导出装置另一个实施例结构示意图;
[0082] 图4为本申请提供的一种配置脚本的导出装置一个实施例结构示意图。

具体实施方式

[0083] 本申请提供了一种配置脚本的导出方法、装置及存储介质,用于提高获取目标配置脚本sql文件的效率及准确率。
[0084] 需要说明的是,本申请提供的一种配置脚本的导出方法,可以应用于终端,还可以应用于服务器上,例如终端可以是智能手机或电脑、平板电脑、智能电视、智能手表、便携计
算机终端也可以是台式计算机等固定终端。为方便阐述,本申请中以终端为执行主体进行
举例说明。
[0085] 请参阅图1,图1为本申请提供的一种配置脚本的导出方法的一个实施例,该导出方法包括:
[0086] 101、终端设置预设拦截规则,该预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0087] 在本实施例中,数据定义语言的类型包括:drop、create或alter;表名拦截规则包括:当表名全匹配时拦截或当表名后缀匹配时拦截;数据操纵语言的类型包括:insert、
update或delete。
[0088] 102、终端根据设置指令设置目标版本及目标需求单号,目标版本与目标需求单号关联,目标需求单号与目标需求业务绑定;
[0089] 在本实施例中,用户可根据业务需求选择目标版本,并在其选择的目标版本下创建目标需求单号,并在终端生成设置指令,终端根据该设置指令设置目标版本及目标需求
单号,一个目标版本可关联多个目标需求单号,一个目标需求单号可以绑定多个目标需求
业务,用户根据目标需求业务进行低代码开发。
[0090] 103、若检测到目标需求业务的低代码开发完成指令,则终端获取目标需求单号对应的第一sql语句;
[0091] 在本实施例中,用户根据目标需求业务通过拖拽、组合可视化组件完成表单配置、报表配置或流程配置,当目标需求业务的表单或报表配置完成后,终端检测到目标需求业
务的低代码开发完成指令,终端获取目标需求单号对应的第一sql语句,第一sql语句中包
含了数据定义语言的类型或数据操纵语言的类型。
[0092] 104、终端根据预设拦截规则拦截第一sql语句获取第一目标sql语句;
[0093] 在本实施例中,终端预编译第一sql语句获取第一sql语句的目标数据定义语言的类型、目标表名及目标数据操纵语言的类型;若目标数据定义语言的类型、目标表名或目标
数据操纵语言的类型符合预设拦截规则,则终端获取目标数据定义语言及目标数据操纵语
言对应的第一目标sql语句。例如:第一sql语句为:“create table test_uporlow(id 
number,value varchar2(20))”,终端预编译该第一sql语句,得到第一sql语句的前缀单词
为create,此时终端确定第一sql语句的目标数据定义语言的类型为create,与预设拦截规
则中的数据定义语言的类型相匹配,此时,终端获取第一目标sql语句,第一目标sql语句
为:create table test_uporlow(id number,value varchar2(20))。
[0094] 105、终端将第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;
[0095] 在本实施例中,若第一目标sql语句对应的目标数据定义语言的类型为create、drop或alter,则终端将第一目标sql语句拆解为目标需求编号、create、drop或alter及第
一目标sql语句,并存入数据库。若第一目标sql语句对应的目标数据操纵语言的类型为
delete,则终端将第一目标sql语句拆解为目标需求单号、delete及第一目标sql语句存入
数据库。若第一目标sql语句对应的目标数据操纵语言的类型为insert或update,则获取主
键列及主键值,若主键值为空,则将第一目标sql语句拆解为目标需求单号、目标表名、
insert或update及第一目标sql语句,存入数据库;若第一目标sql语句对应的目标数据操
纵语言的类型为insert或update,则获取主键列及主键值,若主键值不为孔,则将第一目标
sql语句拆解为目标需求单号、目标表名、insert或update、主键列及主键值,并存入数据
库。
[0096] 106、终端根据目标导出指令及第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0097] 在本实施例中,目标导出指令可以为根据目标版本导出或根据目标需求单号导出。
[0098] 若目标导出指令为根据目标版本导出,则终端按照存入时间升序查询该目标版本所关联的目标需求单号;终端按照存入时间升序查询目标需求单号对应的第一目标需求配
置记录;终端将目标版本、目标需求单号及第一目标需求配置记录根据查询结果按顺序转
化为第二目标需求配置记录,并将第二目标需求配置记录与第一目标需求配置记录合并为
第三目标需求配置记录;终端根据第三目标需求配置记录导出第二目标sql语句,生成目标
配置脚本sql文件。例如:目标版本V所关联的三个目标需求单号为A、B、C,三个目标需求单
号对应的第一目标需求配置记录分别为A1、B1、C1,其中A的存入时间早于B,B的存入时间早
于C,A1的存入时间早于B1,B1的存入时间早于C1,则按照存入时间升序查询目标版本V所关
联的目标需求单号得到的结果为:A、B、C;按照存入时间升序查询目标需求单号对应的第一
目标需求配置记录得到的结果为:A1、B1、C1;此时第二目标需求配置记录为:V、A、B、C、A1、
B1、C1;将第二目标需求配置记录与第一目标需求配置记录合并为第三目标需求配置记录,
并根据第三目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件,具体的:
若第三目标需求配置记录中的sql语句不为空,则第二目标sql语句为第三目标需求配置记
录中记载的sql语句;若第三目标需求配置记录中的sql语句为空,则根据第三目标需求配
置记录中存储的目标表名、主键列、主键值查询数据库,获得对应的数据,并将该数据转化
为可重复执行的insert into语句作为第二目标sql语句。
[0099] 在本实施例中,终端按照存入时间升序查询目标需求单号及第一目标需求配置记录,并将目标版本、目标需求单号及第一目标需求配置记录根据查询结果按顺序转化为第
二目标需求配置记录,从而保证了最终导出的配置脚本sql文件中的sql语句的有序性。
[0100] 若目标导出指令为根据目标需求单号导出,则终端按照存入时间升序查询目标需求单号对应的第一目标需求配置记录;终端查询目标需求单号所关联的目标版本;将目标
版本、目标需求单号及第一目标需求配置记录根据查询结果按顺序转化为第四目标需求配
置记录,并将第四目标需求配置记录与第一目标需求配置记录合并为第五目标需求配置记
录;终端根据第五目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。在
本实施例中,终端设置拦截规则,根据设置指令设置目标版本及目标需求单号,目标版本与
目标需求单号关联,目标需求单号与目标需求业务绑定,若检测到目标需求业务的低代码
开发完成指令,则终端获取目标需求单号对应的第一sql语句;根据预设拦截规则拦截第一
sql语句获取第一目标sql语句,将第一目标sql语句拆解为第一目标需求配置记录并存入
数据库;根据目标导出指令及第一目标需求配置记录导出第二目标sql语句,生成目标配置
脚本sql文件。通过上述方法,由终端导出目标配置脚本sql文件,不需要开发人员整理相应
的配置脚本sql文件,提高了获取目标配置脚本sql文件的效率,并提升了准确率。
[0101] 请参阅图2‑a及图2‑b,图2‑a及图2‑b为本申请提供的一种配置脚本的导出方法的另一个实施例,该导出方法包括:
[0102] 201、终端设置预设拦截规则,该预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0103] 202、终端根据设置指令设置目标版本及目标需求单号,目标版本与目标需求单号关联,目标需求单号与目标需求业务绑定;
[0104] 203、若检测到目标需求业务的低代码开发完成指令,终端获取目标需求单号对应的第一sql语句;
[0105] 204、终端根据预设拦截规则拦截第一sql语句获取第一目标sql语句;
[0106] 在本实施例中,步骤201至204与前述图1实施例中的步骤101与104类似,具体此处不再赘述。
[0107] 205、终端将第一目标sql语句拆解为第一目标需求配置记录,判断数据库中是否存在与该第一目标需求配置记录相同的配置记录;
[0108] 在本实施例中,例如:终端将第一目标sql语句拆解为第一目标需求配置记录A,终端查询数据库,若数据库中存在A,则执行步骤206‑a;若数据库中不存在A,则执行步骤206‑
b。
[0109] 206‑a、若存在,则终端更新第一目标需求配置记录的存入时间;
[0110] 在本实施例中,若数据库中已经存在第一目标需求配置记录,则此时终端只更新第一目标需求配置记录的存入时间,但是不将第一目标需求配置记录存入数据库中。通过
上述方法,避免了在数据库中存入相同的需求配置记录,从而导致数据库数据冗余的情况。
[0111] 206‑b、若不存在,则终端将第一目标需求配置记录存入数据库;
[0112] 在本实施例中,若数据库中不存在与第一目标需求配置记录相同的配置记录,则将第一目标需求配置记录存入数据库中并更新第一目标需求配置记录的存入时间。
[0113] 207、终端根据目标导出指令及第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件;
[0114] 本实施例中的步骤207与前述图1实施例中的步骤106类似,具体此处不再赘述。
[0115] 208、终端在目标环境执行目标配置脚本sql文件。
[0116] 在本实施例中,目标环境包括测试环境、开发环境及生产环境。
[0117] 在本实施例中,在不同的目标环境执行目标配置脚本sql文件,从而在不同的目标环境中生成同样的目标业务报表,保证了目标业务报表在不同目标环境中的一致性。
[0118] 请参阅图3‑a,图3‑a为本申请提供的一种配置脚本的导出装置一个实施例,该导出装置包括:
[0119] 第一设置单元301,用于设置预设拦截规则,该预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0120] 第二设置单元302,用于根据设置指令设置目标版本及目标需求单号,该目标版本与该目标需求单号关联,该目标需求单号与目标需求业务绑定;
[0121] 获取单元303,用于若检测到该目标需求业务的低代码开发完成指令,则获取该目标需求单号对应的第一sql语句;
[0122] 拦截单元304,用于根据该预设拦截规则拦截该第一sql语句获取第一目标sql语句;
[0123] 拆解单元305,用于将该第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;
[0124] 导出单元306,用于根据目标导出指令及该第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0125] 在本实施例中,第一设置单元301设置预设拦截规则,第二设置单元302根据设置指令设置目标版本及目标需求单号,目标版本与目标需求单号关联,目标需求单号与目标
需求业务绑定,获取单元303若检测到目标需求业务的低代码开发完成指令,则获取目标需
求单号对应的第一sql语句;拦截单元304根据预设拦截规则拦截第一sql语句获取第一目
标sql语句;拆解单元305将第一目标sql语句拆解为第一目标需求配置记录,并存入数据
库;导出单元306根据目标导出指令及第一目标需求配置记录导出第二目标sql语句,生成
目标配置脚本sql文件。通过上述方法,由终端导出目标配置脚本sql文件,不需要开发人员
手工整理相应的配置脚本sql文件,提高了获取目标配置脚本sql文件的效率,并且提升了
准确率。
[0126] 下面对本申请提供的一种配置脚本的导出装置进行详细说明,请参阅图3‑b,图3‑b为本申请提供的一种配置脚本的导出装置另一个实施例,该导出装置包括:
[0127] 第一设置单元301,用于设置预设拦截规则,该预设拦截规则为根据数据定义语言的类型拦截、根据表名拦截规则拦截及根据数据操纵语言的类型拦截;
[0128] 第二设置单元302,用于根据设置指令设置目标版本及目标需求单号,该目标版本与该目标需求单号关联,该目标需求单号与目标需求业务绑定;
[0129] 获取单元303,用于若检测到该目标需求业务的低代码开发完成指令,则获取该目标需求单号对应的第一sql语句;
[0130] 拦截单元304,用于根据该预设拦截规则拦截该第一sql语句获取第一目标sql语句;
[0131] 拆解单元305,用于将该第一目标sql语句拆解为第一目标需求配置记录,并存入数据库;
[0132] 导出单元306,用于根据目标导出指令及该第一目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0133] 可选地,该装置还包括:
[0134] 执行单元307,用于在目标环境执行该目标配置脚本sql文件。
[0135] 可选地,该目标环境为开发环境、测试环境或生产环境。
[0136] 可选地,该拦截单元304具体用于:
[0137] 预编译该第一sql语句获取目标数据定义语言的类型、目标表名及目标数据操纵语言的类型;
[0138] 若该目标数据定义语言的类型、目标表名或目标数据操纵语言的类型符合该预设拦截规则,则获取该目标数据定义语言及该目标数据操纵语言对应的第一目标sql语句。
[0139] 可选地,该拆解单元305具体用于:
[0140] 若该目标数据定义语言的类型为create、alter或drop,则将该第一目标sql语句拆解为该目标需求单号、该目标数据定义语言的类型及该第一目标sql语句,并存入数据
库;
[0141] 若该目标数据操纵语言的类型为delete,则将该第一目标sql语句拆解为该目标需求单号、该目标数据操纵语言的类型及第一目标sql语句,并存入数据库;
[0142] 若该目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若该主键值为空,则将该第一目标sql语句拆解为该目标需求单号、该目标表名、该目标数据操
纵语言的类型及该第一目标sql语言,并存入数据库;
[0143] 若该目标数据操纵语言的类型为insert或update,则获取主键列及主键值,若该主键值不为空,则将该第一目标sql语句拆解为该目标需求单号、该目标表名、该目标数据
操纵语言的类型、该主键列及该主键值,并存入数据库。
[0144] 可选地,该导出单元306具体用于:
[0145] 若该目标导出指令为根据目标版本导出,则按照存入时间升序查询该目标版本所关联的目标需求单号;
[0146] 按照存入时间升序查询该目标需求单号对应的第一目标需求配置记录;
[0147] 将该目标版本、该目标需求单号及该第一目标需求配置记录根据查询结果按顺序转化为第二目标需求配置记录,并将该第二目标需求配置记录与该第一目标需求配置记录
合并为第三目标需求配置记录;
[0148] 根据该第三目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0149] 可选地,该导出单元306具体用于:
[0150] 若该目标导出指令为根据目标需求单号导出,则按照存入时间升序查询该目标需求单号对应的第一目标需求配置记录;
[0151] 查询该目标需求单号所关联的目标版本;
[0152] 将该目标版本、该目标需求单号及该第一目标需求配置记录根据查询结果按顺序转化为第四目标需求配置记录,并将该第四目标需求配置记录与该第一目标需求配置记录
合并为第五目标需求配置记录;
[0153] 根据该第五目标需求配置记录导出第二目标sql语句,生成目标配置脚本sql文件。
[0154] 可选地,该导出装置还包括:
[0155] 判断单元308,用于判断数据库中是否存在与该第一目标需求配置记录相同的配置记录;
[0156] 该拆解单元305具体用于:
[0157] 若存在,则更新该第一目标需求配置记录的存入时间;
[0158] 若不存在,则将该第一目标需求配置记录存入数据库。
[0159] 本实施例系统中,各单元的功能与前述图2所示方法实施例中的步骤对应,此处不再赘述。
[0160] 本申请还提供了一种配置脚本的导出装置,请参阅图4,图4为本申请提供的一种配置脚本的导出装置一个实施例,该导出装置包括:
[0161] 处理器401、存储器402、输入输出单元403、总线404;
[0162] 处理器401与存储器402、输入输出单元403以及总线404相连;
[0163] 存储器402保存有程序,处理器401调用程序以执行如上任一一种配置脚本的导出方法。
[0164] 本申请还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,当程序在计算机上运行时,使得计算机执行如上任一一种配置脚本的导出方法。
[0165] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0166] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
[0167] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0168] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0169] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全
部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read‑only 
memory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程
序代码的介质。