CN117312270A - 一种数据库自动化构建和部署的变更管理方法 - Google Patents
一种数据库自动化构建和部署的变更管理方法 Download PDFInfo
- Publication number
- CN117312270A CN117312270A CN202311171476.7A CN202311171476A CN117312270A CN 117312270 A CN117312270 A CN 117312270A CN 202311171476 A CN202311171476 A CN 202311171476A CN 117312270 A CN117312270 A CN 117312270A
- Authority
- CN
- China
- Prior art keywords
- database
- sql
- user
- information
- file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000010276 construction Methods 0.000 title claims abstract description 13
- 238000013070 change management Methods 0.000 title claims abstract description 11
- 238000013515 script Methods 0.000 claims abstract description 64
- 238000012795 verification Methods 0.000 claims abstract description 41
- 238000004519 manufacturing process Methods 0.000 claims abstract description 29
- 230000008859 change Effects 0.000 claims abstract description 26
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 238000013461 design Methods 0.000 claims abstract description 5
- 238000011156 evaluation Methods 0.000 claims abstract description 4
- 238000012858 packaging process Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 17
- 238000011161 development Methods 0.000 claims description 11
- 230000006837 decompression Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000000547 structure data Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据库自动化构建和部署的变更管理方法,该方法包括:S1:用户通过数据建模工具进行数据库表结构设计,每个系统在数据建模工具中始终保持一份最近一次生产上线的表结构基线;S2:代码仓库对用户提交的数据库变更信息进行格式校验,校验通过后提交到代码仓库;S3:根据代码仓库目录结构以及用户配置的流水线参数,对数据库脚本进行构建打包,打包过程中对数据库DDL脚本进行校验,验证DDL脚本是否都是通过数据建模工具提交;S4:变更SQL的评审,扫描构建出的发布包,识别出高危语句操作,需人工确认后方可进行后续操作;S5:调度执行的SQL语句。与现有技术相比,本发明可实现对SQL脚本管理与上线制品包的自动化管控以及功能需求追溯。
Description
技术领域
本发明涉及数据库变更管理技术领域,尤其是涉及一种数据库自动化构建和部署的变更管理方法。
背景技术
数字化浪潮的兴起,对软件交付周期要求更短,以应对需求快速交付。数据库作为一个容器,里面装了最有价值且必须保护的业务数据,其部署并不像其他软件组件或已编译的代码,数据库不是一个文件集合,无法直接从开发环境复制到测试环境,再复制到生产环境。
现有的数据库管理语句变更技术大多存在审核时间点滞后,不能提前发现问题,生产上线存在风险等问题,具体包括:
1、创建数据库对象脚本,存储在传统版本控制系统中,在脚本执行时候从版本控制系统中挑选脚本执行,整个过程都是人工进行一步一步执行。由于版本控制系统和数据库是两个单独的系统,版本控制系统中的脚本与数据库对象之间没有关联,数据库代码的编写和测试都是在数据库端完成,容易出现如下问题:1)代码覆盖在数据库中很常见;在数据库中运行代码前,需要从版本控制系统中获取,这就要防止如何错拿版本;流程之外的更新会被忽视;2)脚本的编写容易出现人为错误、语法错误;3)脚本很难整体进行测试,一个人单独更新一个脚本,另一个单独更新另一个脚本,如果脚本需要以特定的顺序运行,那么以任意顺序运行通常会由于错误的依赖运行错误;4)如果一个脚本代表整个更新,那么它可以处理依赖,但是处理项目范围内的变更就困难的多,因为这个文件很长,中间出错了怎么继续执行;5)除非非常有经验,否则这些脚本中会缺少从编写到运行这段时间内发生在目标环境里的变更;可能会覆盖生产环境的热补丁,或者另一个团队的并行操作。
2、采用比较工具处理不同环境,生成迁移代码。这种操作方式称为“比较和同步”方法。其原理是检查两个不同数据库环境之间的数据库对象,将他们进行比较,如果出现差异,就会自动生成一个仿照源对象更改的目标脚本,会存在以下问题:1)“比较和同步”工具不清楚发生在他之前的变更,或者任何发生在目标环境中的变更;没有版本控制,没有变更信息,只有特定时间点的差异;2)数据库脚本保存可以在传统的版本控制解决方案中,而数据库脚本部署适合“比较和同步”工具,两者之间比较难协调;3)手动检查和确认变更内容必须是流程的一部分,需要大量人工确认;4)团队之间的代码合并无法理清源头。
因此,亟需设计一种数据库自动化构建和部署的变更管理方法,以实现对SQL脚本管理与上线制品包的有效管控以及功能需求追溯。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供了一种数据库自动化构建和部署的变更管理方法,可实现对SQL脚本管理与上线制品包的自动化管控以及功能需求追溯。
本发明的目的可以通过以下技术方案来实现:
本发明给出了一种数据库自动化构建和部署的变更管理方法,该方法包括以下步骤:
步骤S1:用户通过数据建模工具进行数据库表结构设计,每个系统在数据建模工具中始终保持一份最近一次生产上线的表结构基线;
步骤S2:将数据库变更提交到代码仓库,代码仓库对用户的提交信息进行格式校验,校验通过后提交到代码仓库;
步骤S3:根据代码仓库的目录结构,以及用户配置的流水线的参数,对数据库脚本进行构建打包,打包过程中对数据库DDL脚本进行校验,验证DDL脚本是否都是通过数据建模工具提交,如果验证失败,构建打包也会失败;
步骤S4:变更SQL的评审,扫描构建出的发布包,识别出高危语句操作,需人工确认后方可进行后续操作;
步骤S5:调度执行的SQL语句。
优选地,所述步骤S1中如果用户进行了表结构更新,通过对比最近一次生产基线生成相关的SQL变更语句;如果用户的数据库变更涉及到数据的更新、修改、删除操作,用户需要本地进行SQL语句的编写。
优选地,所述步骤S1包括以下子步骤:
步骤S1.1:数据建模系统需要维护一个数据字典,此字典定义表结构各个字段含义,字段取值范围,供用户进行数据库表属性设置时候选择;
步骤S1.2:用户编写数据库变更脚本过程分为两部分:一部分是表结构相关的DDL脚本,此部分脚本用户直接在建模工具上完成,用户进行建模过程中选择数据库属性,必须是从数据字典中选择;另一部分是数据库变更的DML脚本,此部分用户在本地编辑器完成;
步骤S1.3:用户完成编写后,在建模工具上给对应的表新建一个基线;其中,编写内容包括数据表结构信息、表类型信息、存储过程信息、基础数据表信息、更新数据信息编写;所述更新数据包括数据表结构数据、表类型数据、存储过程数据;
步骤S1.4:用户根据最近一次生产基线与当前新建基线对比,生产数据库变更的SQL文件。
优选地,所述步骤S2具体包括以下步骤:
步骤S2.1:获取代码仓库信息:如果没有获取代码仓库信息,则有权限用户新建一个代码仓库,并对目录结构进行规划,然后在数据建模平台与对应代码工程进行绑定;所述此处所述仓库信息包括代码仓库的地址,以及可提交的目录信息。
步骤S2.2:获取提交信息:用户根据修改表结构的对应需求任务,按照格式要求编写提交信息后,通过建模工具生成对应提交信息;其中,生成的信息包括数据库标识符、此次修改的表结构名信息;
步骤S2.3:代码仓库对用户的每次提交内容进行相关权限验证、提交信息的合规性验证、提交内容的合规性验证;
步骤S2.4:用户本地编写的数据库数据操作相关的SQL脚本,用户选择对应的目录,然后从建模工具上获取提交信息,提交到代码仓库。
优选地,所述步骤S2.3中的验证方式具体为:
根据建模工具生成的提交信息的格式,在对应的代码仓库中增加钩子,验证用户提交信息是否符合与建模工具约定的提交信息格式。
优选地,所述步骤S3中用户配置的流水线的参数,包括:
步骤S3.1:用户配置构建流水线参数;其中,所述流水线参数包括:流水线的执行方式,构建打包的目录,是否开启质量门禁;
步骤S3.2:根据配置的代码仓库目录,检测用户脚本的合规性;其中,所述脚本合规性包括:自动生成的脚本中不能包含用户自己上传的脚本,配置文件中密码不能是明文;
步骤S3.3:生成制品包中文件清单,并放入制品包中;所述文件清单包括文件的MD5码和文件名称;
步骤S3.4:检测文件清单中是否有数据库的配置文件,根据配置文件生成数据库信息文件。
优选地,所述步骤S4变更SQL的评审具体包括以下步骤:
步骤S4.1:进行数据库发布规则审核,扫描发布包中所有的SQL语句,判断是否符合发布规则,如果不符合则不能执行后续步骤;
步骤S4.2:数据库发布文件编排:获取发布包中的SQL文件,选择需要执行的SQL文件,然后对需要执行的SQL文件重新进行排序,以及设置SQL文件执行失败后是否继续执行;
步骤S4.3:根据编排生成的文件清单,进行数据库高危语句识别;
步骤S4.4:将识别的语句写入新的文件中,文件的命名方式为原有文件名称加上后缀Risk;高危语句写入调度平台,并且与包的信息进行关联,方便用户进行查看。
优选地,所述步骤S4.3具体为:首先,读取SQL文件内容,然后读取配置的高危语句规则,对文件内容中的SQL语句进行规则匹配;然后,生成新的数据库文件执行发布包;其中,高危语句规则为SQL语句包含DELETE、DROP、TRUNCATE。
优选地,所述步骤S5具体为:调度执行的SQL语句发布需要经过三个环境,包括开发环境、验证环境、生产环境;其中,在开发环境上调度支持单个SQL文件的执行也支持整个发布包的SQL文件执行;在验证环境进行发布包中的SQL全量执行;生产环境执行之前设有一门禁,用于判断当前发布包中的脚本是否均在验证环境执行过,如果执行过,则进行生产发布。
优选地,所述步骤S5具体包括以下子步骤:
步骤S5.1:根据流水线信息或者用户选择的制品信息,下载制品包并进行解压操作;
步骤S5.2:获取制品包对应的编排信息;其中,所述编排信息包括发布包中需要执行的文件列表、以及文件的执行顺序;
步骤S5.3:测试环境数据库审核平台接收到步骤S5.1中的SQL文件包,计算SQL文件包的md5值,并将所述md5值与发布包中的md5值对比,如果两个md5值相同,则说明SQL文件包一致;
步骤S5.4:判断当前执行的发布环境是否是开发验证环境,如果是开发验证环境,根据发布包的编排信息执行发布包中的SQL,并记录文件的执行结果;
步骤S5.5:判断当前执行环境是否是测试验证环境,如果是测试验证环境全量执行发布包,并记录文件的执行结果;
步骤S5.6:判断当前环境是否是生产环境,如果是生产环境,判断发布包中的文件是否都在测试验证环境执行了,如果都执行,则进行生产环境的调度。
与现有技术相比,本发明具有以下有益效果:
1)控制数据库上线发布包是通过测试环境验证过,并且数据库发布包中包含信息是与开发关联,解决了现有技术存在的数据库脚本存在未经过验证就上生成,亦或只有制品包没有制品包关联信息的问题,实现了数据库脚本的自动化生命周期管理。
2)本发明的数据库脚开发测试一包发布,实现测试发布包和生产发布包一致,保证了数据一致性;
3)通过代码审核机制,数据库变更风险提前识别并进行优化。
附图说明
图1为本发明的方法流程图;
图2为数据库表变更语句生成过程示意图;
图3为SQL文件审核过程示意图;
图4为调度执行SQL语句过程示意图;
图5为数据库调度引擎流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
如图1所示,本实施例给出了一种数据库自动化构建和部署的变更管理方法,该方法包括以下步骤:
步骤S1:用户通过数据建模工具进行数据库表结构设计,每个系统在数据建模工具中始终保持一份最近一次生产上线的表结构基线;如果用户进行了表结构更新,通过对比最近一次生产基线生成相关的SQL变更语句;如果用户的数据库变更涉及到数据的更新、修改、删除操作,用户需要本地进行SQL语句的编写;
如图2所示,具体包括以下子步骤:
步骤S1.1:数据建模系统需要维护一个数据字典,此字典定义表结构各个字段含义,字段取值范围,供用户进行数据库表属性设置时候选择;
步骤S1.2:用户编写数据库变更脚本过程分为两部分:一部分是表结构相关的DDL脚本,此部分脚本用户直接在建模工具上完成,用户进行建模过程中选择数据库属性,必须是从数据字典中选择;另一部分是数据库变更的DML脚本,此部分用户在本地编辑器完成;
步骤S1.3:用户完成编写后,在建模工具上给对应的表新建一个基线;其中,编写内容包括数据表结构信息、表类型信息、存储过程信息、基础数据表信息、更新数据信息编写;所述更新数据包括数据表结构数据、表类型数据、存储过程数据;
步骤S1.4:用户根据最近一次生产基线与当前新建基线对比,生产数据库变更的SQL文件。
步骤S2:将数据库变更提交到代码仓库,代码仓库对用户的提交信息进行格式校验,校验通过后提交到代码仓库,具体包括以下子步骤:
步骤S2.1:获取代码仓库信息:如果没有获取代码仓库信息,则有权限用户新建一个代码仓库,并对目录结构进行规划,然后在数据建模平台与对应代码工程进行绑定;所述此处所述仓库信息包括代码仓库的地址,以及可提交的目录信息。
步骤S2.2:获取提交信息:用户根据修改表结构的对应需求任务,按照格式要求编写提交信息后,通过建模工具生成对应提交信息;其中,生成的信息包括数据库标识符、此次修改的表结构名信息;
步骤S2.3:代码仓库对用户的每次提交内容进行相关权限验证、提交信息的合规性验证、提交内容的合规性验证;验证方式具体为:
根据建模工具生成的提交信息的格式,在对应的代码仓库中增加钩子,验证用户提交信息是否符合与建模工具约定的提交信息格式;
步骤S2.4:用户本地编写的数据库数据操作相关的SQL脚本,用户选择对应的目录,然后从建模工具上获取提交信息,提交到代码仓库。
步骤S3:根据代码仓库的目录结构,以及用户配置的流水线的参数,对数据库脚本进行构建打包,打包过程中对数据库DDL脚本进行校验,验证DDL脚本是否都是通过数据建模工具提交,如果验证失败,构建打包也会失败;
其中,用户配置的流水线的参数,包括:
步骤S3.1:用户配置构建流水线参数;其中,所述流水线参数包括:流水线的执行方式,构建打包的目录,是否开启质量门禁;
步骤S3.2:根据配置的代码仓库目录,检测用户脚本的合规性;其中,所述脚本合规性包括:自动生成的脚本中不能包含用户自己上传的脚本,配置文件中密码不能是明文;
步骤S3.3:生成制品包中文件清单,并放入制品包中;所述文件清单包括文件的MD5码和文件名称;
步骤S3.4:检测文件清单中是否有数据库的配置文件,根据配置文件生成数据库信息文件。
步骤S4:变更SQL的评审,扫描构建出的发布包,识别出高危语句操作,需人工确认后方可进行后续操作;其中,如图3所示,变更SQL的评审具体包括以下步骤:
步骤S4.1:进行数据库发布规则审核,扫描发布包中所有的SQL语句,判断是否符合发布规则,如果不符合则不能执行后续步骤;
步骤S4.2:数据库发布文件编排:获取发布包中的SQL文件,选择需要执行的SQL文件,然后对需要执行的SQL文件重新进行排序,以及设置SQL文件执行失败后是否继续执行;
步骤S4.3:根据编排生成的文件清单,进行数据库高危语句识别;首先,读取SQL文件内容,然后读取配置的高危语句规则,对文件内容中的SQL语句进行规则匹配;然后,生成新的数据库文件执行发布包;其中,高危语句规则为SQL语句包含DELETE、DROP、TRUNCAT;
步骤S4.4:将识别的语句写入新的文件中,文件的命名方式为原有文件名称加上后缀Risk;高危语句写入调度平台,并且与包的信息进行关联,方便用户进行查看。
步骤S5:调度执行的SQL语句,调度执行的SQL语句发布需要经过三个环境,包括开发环境、验证环境、生产环境;其中,在开发环境上调度支持单个SQL文件的执行也支持整个发布包的SQL文件执行;在验证环境进行发布包中的SQL全量执行;生产环境执行之前设有一门禁,用于判断当前发布包中的脚本是否均在验证环境执行过,如果执行过,则进行生产发布。具体包括以下下子步骤:
步骤S5.1:根据流水线信息或者用户选择的制品信息,下载制品包并进行解压操作;
步骤S5.2:获取制品包对应的编排信息;其中,所述编排信息包括发布包中需要执行的文件列表、以及文件的执行顺序;
步骤S5.3:测试环境数据库审核平台接收到步骤S5.1中的SQL文件包,计算SQL文件包的md5值,并将所述md5值与发布包中的md5值对比,如果两个md5值相同,则说明SQL文件包一致;
步骤S5.4:判断当前执行的发布环境是否是开发验证环境,如果是开发验证环境,根据发布包的编排信息执行发布包中的SQL,并记录文件的执行结果;
步骤S5.5:判断当前执行环境是否是测试验证环境,如果是测试验证环境全量执行发布包,并记录文件的执行结果;
步骤S5.6:判断当前环境是否是生产环境,如果是生产环境,判断发布包中的文件是否都在测试验证环境执行了,如果都执行,则进行生产环境的调度。
综上,本发明通过特定的数据库建模客户端,从源头管控数据库脚本DDL语句;然后结合代码仓库对数据库变更脚本进行版本管理;在代码仓库中通过特定目录规范进行脚本管理;然后将代码仓库作为CICD流水线源头,在SQL文件提交阶段会自动触发CICD流水线,从而对变更的脚本进行打包和部署;在部署的过程中首先对发布的高危语句进行扫描,并给出高危语句扫描报告,提供用户查看,用户确认高危语句后,用户挑选执行文件,进行自动化部署。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据库自动化构建和部署的变更管理方法,其特征在于,该方法包括以下步骤:
步骤S1:用户通过数据建模工具进行数据库表结构设计,每个系统在数据建模工具中始终保持一份最近一次生产上线的表结构基线;
步骤S2:将数据库变更提交到代码仓库,代码仓库对用户的提交信息进行格式校验,校验通过后提交到代码仓库;
步骤S3:根据代码仓库的目录结构,以及用户配置的流水线的参数,对数据库脚本进行构建打包,打包过程中对数据库DDL脚本进行校验,验证DDL脚本是否都是通过数据建模工具提交,如果验证失败,构建打包也会失败;
步骤S4:变更SQL的评审,扫描构建出的发布包,识别出高危语句操作,需人工确认后方可进行后续操作;
步骤S5:调度执行的SQL语句。
2.根据权利要求1所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S1中如果用户进行了表结构更新,通过对比最近一次生产基线生成相关的SQL变更语句;如果用户的数据库变更涉及到数据的更新、修改、删除操作,用户需要本地进行SQL语句的编写。
3.根据权利要求2所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S1包括以下子步骤:
步骤S1.1:数据建模系统需要维护一个数据字典,此字典定义表结构各个字段含义,字段取值范围,供用户进行数据库表属性设置时候选择;
步骤S1.2:用户编写数据库变更脚本过程分为两部分:一部分是表结构相关的DDL脚本,此部分脚本用户直接在建模工具上完成,用户进行建模过程中选择数据库属性,必须是从数据字典中选择;另一部分是数据库变更的DML脚本,此部分用户在本地编辑器完成;
步骤S1.3:用户完成编写后,在建模工具上给对应的表新建一个基线;其中,编写内容包括数据表结构信息、表类型信息、存储过程信息、基础数据表信息、更新数据信息编写;所述更新数据包括数据表结构数据、表类型数据、存储过程数据;
步骤S1.4:用户根据最近一次生产基线与当前新建基线对比,生产数据库变更的SQL文件。
4.根据权利要求3所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S2具体包括以下步骤:
步骤S2.1:获取代码仓库信息:如果没有获取代码仓库信息,则有权限用户新建一个代码仓库,并对目录结构进行规划,然后在数据建模平台与对应代码工程进行绑定;所述此处所述仓库信息包括代码仓库的地址,以及可提交的目录信息。
步骤S2.2:获取提交信息:用户根据修改表结构的对应需求任务,按照格式要求编写提交信息后,通过建模工具生成对应提交信息;其中,生成的信息包括数据库标识符、此次修改的表结构名信息;
步骤S2.3:代码仓库对用户的每次提交内容进行相关权限验证、提交信息的合规性验证、提交内容的合规性验证;
步骤S2.4:用户本地编写的数据库数据操作相关的SQL脚本,用户选择对应的目录,然后从建模工具上获取提交信息,提交到代码仓库。
5.根据权利要求4所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S2.3中的验证方式具体为:
根据建模工具生成的提交信息的格式,在对应的代码仓库中增加钩子,验证用户提交信息是否符合与建模工具约定的提交信息格式。
6.根据权利要求1所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S3中用户配置的流水线的参数,包括:
步骤S3.1:用户配置构建流水线参数;其中,所述流水线参数包括:流水线的执行方式,构建打包的目录,是否开启质量门禁;
步骤S3.2:根据配置的代码仓库目录,检测用户脚本的合规性;其中,所述脚本合规性包括:自动生成的脚本中不能包含用户自己上传的脚本,配置文件中密码不能是明文;
步骤S3.3:生成制品包中文件清单,并放入制品包中;所述文件清单包括文件的MD5码和文件名称;
步骤S3.4:检测文件清单中是否有数据库的配置文件,根据配置文件生成数据库信息文件。
7.根据权利要求1所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S4变更SQL的评审具体包括以下步骤:
步骤S4.1:进行数据库发布规则审核,扫描发布包中所有的SQL语句,判断是否符合发布规则,如果不符合则不能执行后续步骤;
步骤S4.2:数据库发布文件编排:获取发布包中的SQL文件,选择需要执行的SQL文件,然后对需要执行的SQL文件重新进行排序,以及设置SQL文件执行失败后是否继续执行;
步骤S4.3:根据编排生成的文件清单,进行数据库高危语句识别;
步骤S4.4:将识别的语句写入新的文件中,文件的命名方式为原有文件名称加上后缀Risk;高危语句写入调度平台,并且与包的信息进行关联,方便用户进行查看。
8.根据权利要求7所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S4.3具体为:首先,读取SQL文件内容,然后读取配置的高危语句规则,对文件内容中的SQL语句进行规则匹配;然后,生成新的数据库文件执行发布包;其中,高危语句规则为SQL语句包含DELETE、DROP、TRUNCATE。
9.根据权利要求1所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S5具体为:调度执行的SQL语句发布需要经过三个环境,包括开发环境、验证环境、生产环境;其中,在开发环境上调度支持单个SQL文件的执行也支持整个发布包的SQL文件执行;在验证环境进行发布包中的SQL全量执行;生产环境执行之前设有一门禁,用于判断当前发布包中的脚本是否均在验证环境执行过,如果执行过,则进行生产发布。
10.根据权利要求9所述的一种数据库自动化构建和部署的变更管理方法,其特征在于,所述步骤S5具体包括以下子步骤:
步骤S5.1:根据流水线信息或者用户选择的制品信息,下载制品包并进行解压操作;
步骤S5.2:获取制品包对应的编排信息;其中,所述编排信息包括发布包中需要执行的文件列表、以及文件的执行顺序;
步骤S5.3:测试环境数据库审核平台接收到步骤S5.1中的SQL文件包,计算SQL文件包的md5值,并将所述md5值与发布包中的md5值对比,如果两个md5值相同,则说明SQL文件包一致;
步骤S5.4:判断当前执行的发布环境是否是开发验证环境,如果是开发验证环境,根据发布包的编排信息执行发布包中的SQL,并记录文件的执行结果;
步骤S5.5:判断当前执行环境是否是测试验证环境,如果是测试验证环境全量执行发布包,并记录文件的执行结果;
步骤S5.6:判断当前环境是否是生产环境,如果是生产环境,判断发布包中的文件是否都在测试验证环境执行了,如果都执行,则进行生产环境的调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171476.7A CN117312270A (zh) | 2023-09-12 | 2023-09-12 | 一种数据库自动化构建和部署的变更管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171476.7A CN117312270A (zh) | 2023-09-12 | 2023-09-12 | 一种数据库自动化构建和部署的变更管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117312270A true CN117312270A (zh) | 2023-12-29 |
Family
ID=89236347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311171476.7A Pending CN117312270A (zh) | 2023-09-12 | 2023-09-12 | 一种数据库自动化构建和部署的变更管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312270A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519704A (zh) * | 2024-01-08 | 2024-02-06 | 慧新全智工业互联科技(青岛)有限公司 | 数据库应用界面自动构建方法 |
-
2023
- 2023-09-12 CN CN202311171476.7A patent/CN117312270A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519704A (zh) * | 2024-01-08 | 2024-02-06 | 慧新全智工业互联科技(青岛)有限公司 | 数据库应用界面自动构建方法 |
CN117519704B (zh) * | 2024-01-08 | 2024-04-23 | 慧新全智工业互联科技(青岛)有限公司 | 数据库应用界面自动构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707265B2 (en) | Test automation method for software programs | |
US7917895B2 (en) | Automated software testing and validation system | |
US7490319B2 (en) | Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems | |
CN109783084A (zh) | 一种计算机代码自动生成方法、系统、装置和存储介质 | |
US9971595B1 (en) | Techniques for automated database deployment | |
CN106575227B (zh) | 自动软件更新框架 | |
GB2508643A (en) | Method for Performing a Regression Test after Modifying Source Code File | |
CN112711403B (zh) | 游戏开发同步的方法、装置、计算机设备和存储介质 | |
US20070234328A1 (en) | File handling for test environments | |
CN117312270A (zh) | 一种数据库自动化构建和部署的变更管理方法 | |
De Jong et al. | Zero-downtime SQL database schema evolution for continuous deployment | |
CN109901872A (zh) | 一种企业信息化系列产品版本管控方法 | |
US20090282065A1 (en) | Metadata to technical design review document process | |
CN111125067B (zh) | 数据维护方法及装置 | |
CN107480050A (zh) | 一种自动测试更新包的测试方法 | |
CN108416035B (zh) | 一种基于disconf的数据库映射文件统一管理方法 | |
CN112256365B (zh) | 一种自动化管理多语言版本的方法及终端 | |
US9946534B1 (en) | Techniques for automated database deployment | |
JP6287093B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム | |
JP5641901B2 (ja) | Sql検証システムとその方法およびプログラム | |
CN113064628B (zh) | 一种可追溯可验证的软件工程数据归档方法 | |
Rose et al. | Concordance: A framework for managing model integrity | |
Braunisch et al. | Maturity Evaluation of SDKs for I4. 0 Digital Twins | |
JP2013218664A (ja) | ソフトウェア実行結果の成果物収集装置 | |
CN114090419A (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 |