表结构发布流程化
本文以设计结构(Develop,简称Dev)、测试(Test)、生产发布(Product)的表结构设计步骤向您介绍规范、安全的表结构发布流程。
背景信息
在新项目、新需求或者优化等业务场景中,一般会涉及到新建表、修改表(加减字段、加减索引、调整字段属性、调整索引组成)等结构的变更操作,此时您可以使用DMS的结构设计功能。
DMS推出的结构设计为多套研发环境开发,且在开发过程中自动检测企业需遵循的表结构研发规范,并支持多人在Web页面协同开发的功能。
结构设计功能可保障研发自助变更的同时满足企业的设计规范、不同环境之间相关表结构的一致性,同时大大提升生产发布的成功率。
结构设计功能说明:
功能 | 说明 |
保障生产发布的成功率 | 新的表结构在发布到生产环境前,会依据研发流程在逐个节点中对表结构进行验证,可避免未验证脚本直接发布到生产环境而导致发布失败的问题,保障生产发布的成功率。 |
保障环境结构的一致性 | 系统会依据研发流程对逐个环境进行结构变更,可避免因部分环境未执行而导致的测试延误、项目整体发版进展延误等。 |
保障数据结构的规范性 | 安全规则的研发规范包含新建表、修改表字段、修改表索引等多方面的近40条规范,方便研发同学自助设计满足企业研发规范的表结构,可避免因不满足规范的结构发布上线而导致的生产故障。同时,该功能可节省运维人员因人工检查规范而带来的人力投入,并提升研发效能,可以有效支撑快速迭代发版工作。 |
搭建示例的测试环境
创建3个RDS MySQL数据库实例,分别为:Schema_Design-dev、Schema_Design-test、Schema_Design-product,操作详情请参见快速创建RDS MySQL实例。
将3个数据库实例录入至DMS中,将管控模式均设置为安全协同,并分别将数据库环境类型设置成开发(Dev)、测试(Test)、生产(Product)。云数据库录入的操作详情请参见云数据库录入,数据库实例环境的说明请参见实例环境说明。
在3个数据库实例中分别创建3个对应的数据库:dev_database、test_database、product_database。
数据库实例与结构设计各节点的对应关系:
结构设计节点 | 设计结构(Dev) | 测试(Test) | 生产发布(Product) |
对应数据库实例名称 | Schema_Design-dev | Schema_Design-test | Schema_Design-product |
环境类型 | dev | test | product |
数据库名称 | dev_database | test_database | product_database |
步骤一:配置研发规则
默认的研发流程为:设计结构(Dev)、生产发布(Product)。以下步骤将介绍如何新建安全规则并配置设计结构(Dev)、测试(Test)、生产发布(Product)的研发流程。
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择 。
说明若您使用的是极简模式的控制台,请单击控制台左上角的
图标,选择 。
在安全规则页面中,单击左上角的新增规则集按钮,新增一个规则集。
说明可自定义规则集名称,本示例中以SD-DT为例。
在安全规则详情页面左侧的导航栏中,单击结构设计。
在结构设计页签中,单击研发流程右侧操作列中的编辑。
在编辑配置项对话框中,完成如下配置:
将第二条节点名称改为
测试
,将库环境改为test
。新增第三条节点,将第三条节点名称改为
生产发布
,将库环境改为product
,同时该节点设置为锚点。说明锚点:为工单编辑的冻结点,即锚点所在步骤成功发布之后,工单将会变成已发布状态,不可编辑。
配置界面如下图所示。
单击提交。
步骤二:设置数据库实例的安全规则
将Schema_Design-dev数据库实例(环境类型为Dev)的管控模式设置为安全协同并选择步骤一创建的SD-DT安全规则。
- 登录数据管理DMS 5.0。
在控制台首页左侧的实例列表中,右键单击Schema_Design-dev数据库实例。
在弹出的列表中,选择 。
步骤三:进行结构设计
以下步骤以新建数据库的表结构变更为例,向您介绍设计结构(Dev)、测试(Test)、生产发布(Product)三节点的结构设计项目。
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择 。
说明若您使用的是极简模式的控制台,请单击控制台左上角的
图标,选择 。
单击页面右上角的结构设计。
配置结构设计工单信息,并单击创建工单。
创建工单后,系统会自动跳转到结构设计项目首页,该项目共有5个节点,如下图所示。
在设计结构节点进行配置:
单击导入建表语句。
在文本框中输入以下语句,并单击确定。
CREATE TABLE `teacher` ( `teacher_id` varchar(20) NOT NULL COMMENT '教师编号', `teacher_name` varchar(20) NULL COMMENT '教师名字', `phonenumber` varchar(20) NULL COMMENT '教师电话号码', PRIMARY KEY (`teacher_id`) ) DEFAULT CHARACTER SET=utf8 COMMENT='教师表';
在控制台界面确认基本信息、字段、索引等信息。
单击保存,并在弹出的预检测结果窗口中单击确认无误,提交保存。
单击执行变更到基准库。
在弹出的对话框中,选择执行策略为立即执行,并在确认最终的SQL语句无误后单击提交执行。
提交执行后请等待审批完成,待审批完成后,系统会将新的表结构写入到dev_database数据库中。
可选:前往SQL Console插入数据或提交数据变更工单对dev_database数据库进行测试。
插入数据示例代码如下:
insert into teacher (teacher_id, teacher_name, phonenumber) values ('t001', 'teacher001', '1380000001'), ('t002', 'teacher002', '1380000002'), ('t003', 'teacher003', '1380000003');
验证通过后,即可将该变更结构发布到下一节点中。
在结构设计工单页面中,单击进入下一节点。
说明在进行该项操作前,您可以与您的同事在该节点对dev_database数据库进行多次变更设计与验证,系统最终会产生一个
create
脚本,发布到下个节点。在弹出的对话框中,再次单击进入下一节点。
在测试节点进行配置:
单击执行变更到目标库。
选择test_database数据库,并将执行策略设置为立刻执行,单击提交执行。
说明提交执行后请等待审批完成,待审批完成后,系统会将变更的结构写入到test_database数据库中。
可选:前往SQL Console插入数据或提交数据变更工单对test_database数据库进行测试。
说明当该节点验证通过时,即可将该变更结构发布到下一节点中。
在结构设计工单页面中,单击进入下一节点。
在弹出的对话框中,再次单击进入下一节点。
在生产发布节点进行配置:
单击执行变更到目标库。
选择product_database数据库,并将执行策略设置为立刻执行,单击提交执行。
提交执行后请等待审批完成。待审批完成后,系统会将变更的结构写入到product_database数据库中,您也可以将数据写入生产环境中(product_database数据库)。
在结构设计工单页面中,单击进入下一节点。
在弹出的对话框中,再次单击进入下一节点。
整个流程结束,工单关闭。