表结构发布流程化

更新时间:
复制 MD 格式

表结构发布流程化可保障您在自助变更表结构的同时,满足企业的设计规范、不同数据库环境之间相关表结构的一致性,大大提升生产发布的成功率。本文以自定义结构设计流程为例为您介绍规范、安全的表结构发布流程,流程节点包括设计结构(Develop,简称Dev)、测试(Test)、生产发布(Product)。

背景信息

结构设计功能

说明

保障生产发布的成功率

在发布新的表结构至生产环境之前,将依照研发流程对表结构在各个节点进行验证,以避免未经过验证的脚本直接发布到生产环境而导致发布失败,保障生产发布的成功率。

保障环境结构的一致性

系统会依据研发流程对每个数据库环境进行结构变更,以避免因部分环境未执行而导致的测试延误及项目整体发版进展延误等。

保障数据结构的规范性

结构设计的研发规范涵盖新建表、修改表字段、修改表索引等近40条标准,以便研发人员自助设计符合企业研发规范的表结构,可以有效避免因不符合规范的结构发布上线而引发的生产故障。同时,该功能可减少运维人员检查规范的人员投入,并提升研发效率,从而有效支撑快速迭代和发布工作。更多信息,请参见表结构设计规范

方案概览

  1. 自定义研发流程(可选):系统默认的研发流程为设计结构(Dev)> 生产发布(Product)。您可以自定义新的研发流程以满足业务需求。

  2. 设置数据库实例的安全规则(可选):为数据库实例关联安全规则(包含自定义研发流程)。

  3. 数据库结构设计:提交结构设计工单,保障多套数据库之间相关表结构的一致性、生产发布的成功率。

本示例准备的测试环境

  1. 创建三个RDS MySQL数据库实例,并在对应实例下创建账号和数据库。创建操作,请参见快速创建RDS MySQL实例

    本示例中实例名称分别为Schema_Design-dev、Schema_Design-test、Schema_Design-product。

    本示例中数据库名称分别为dev_database、test_database、product_database。

  2. 使用阿里云主账号(有管理员或DBA权限)将创建的三个数据库实例录入至DMS中,并将实例的管控模式都设置为安全协同,将数据库环境类型分别设置为开发(Dev)、测试(Test)、生产(Product)。更多信息,请参见云数据库录入

    录入实例图示

    DMS控制台左侧导航栏单击数据库实例,然后单击顶部工具栏的+按钮新增实例。在基本信息区域,选择数据库类型为MySQL,实例地区为华东1(杭州),录入方式选择实例ID,填写实例ID(如rm-xxx),安全托管选择开启,访问方式选择账号+密码登录,填写数据库账号和密码。如需配置更多参数,可展开高级信息区域。配置完成后,单击测试连接验证连通性,最后单击提交完成实例录入。

数据库实例与结构设计各节点的对应关系

image

1. 自定义研发流程规则

以下步骤将介绍新建安全规则并配置表结构设计的步骤,研发流程为设计结构(Dev)、测试(Test)、生产发布(Product)。

1.1 登录DMS并进入安全规则页面

  1. 登录数据管理DMS 5.0

  2. 单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 安全与规范 > 安全规则

  3. 说明

    若您使用的是非极简模式的控制台,在顶部菜单栏中,选择安全与规范 > 安全规则

1.2 新建安全规则(可选)

安全规则页面,单击左上角的新增规则集按钮,新增一个规则集。本示例以创建SD-DT为例。

成功创建安全规则后,DMS将自动进入该规则的详情页面。

在弹出的对话框中,引擎类型 选择 MySQL,填写规则集名称和备注后,单击 提交

1.3 自定义研发流程

在安全规则中配置研发流程,以明确表结构设计的步骤及每个步骤允许的操作。

  1. (可选)单击安全规则右侧的编辑,进入安全规则 详情 页面。

    说明

    如果待编辑的安全规则是新创建的,可跳过该步骤。

  2. 在安全规则 详情 页面左侧的导航栏中,单击结构设计

  3. 结构设计页签中,单击研发流程右侧操作列中的编辑

    1. 将第二条节点名称改为测试,将库环境改为test

    2. 新增第三条节点,将第三条节点名称改为生产发布,将库环境改为product,同时将该节点设置为 锚点

      说明

      锚点为工单编辑的冻结点,即锚点所在步骤成功发布之后,工单将会变成已发布状态,不可编辑。

      完成所有节点配置后,单击提交

    3. 单击提交

2. 设置实例的安全规则

Schema_Design-dev实例(环境类型为Dev)的管控模式设置为安全协同并选择SD-DT安全规则。

  1. 在控制台首页左侧的实例列表中,右键单击Schema_Design-dev数据库实例。

  2. 在弹出的列表中,选择管控模式 > 安全协同 > SD-DT

3. 数据库结构设计

以下步骤以新建数据库的表结构变更为例,向您介绍设计结构(Dev)、测试(Test)、生产发布(Product)三节点的结构设计项目。

3.1 进入DMS结构设计功能页面

  1. 登录数据管理DMS 5.0

  2. 在顶部菜单栏中,选择数据库开发 > 结构变更 > 结构设计

    说明

    若您使用的是极简模式的控制台,请单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 数据库开发 > 结构变更 > 结构设计

  3. 单击页面右上角的结构设计

3.2 配置结构设计工单信息

  1. 创建结构设计工单。

    创建工单页面选择变更基准库为开发环境的数据库,其他参数请您自行填写。

    本示例变更基准库选择dev_database。

    表单中其他参数包括项目名称项目背景安全规则关联迭代变更相关人,填写完成后单击提交

  2. 设计结构节点,给dev_database数据库中创建表。

    1. 单击导入SQL语句,填入创建表的SQL,再单击确定

      创建表的SQL示例

      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 CHARSET=utf8 COMMENT='教师表';
    2. 单击保存,并在弹出的预检测结果对话框中单击确认无误,提交保存

    3. 单击执行变更到基准库

    4. 在提示面板中选择执行策略,确认执行SQL的正确性,再单击确定

    5. 等待审批人手动审批通过,系统会将新的表结构写入到dev_database数据库中。

      变更执行历史页签中,可查看 teacher 表的执行结果,状态为成功,进度 100%,执行策略为立即执行

    6. 单击进入下一节点

      说明

      在进行该项操作前,请您自行在该节点对dev_database数据库进行多次变更设计与验证,系统最终会产生一个create脚本,发布到下个节点。

  3. 测试节点中,将上一节点中创建的表结构同步至测试库中。

    1. 单击执行变更到目标库

    2. 选择test_database数据库,并将执行策略设置为立刻执行,单击确定

      执行脚本区域显示建表语句:创建名为 teacher 的表,包含 teacher_idteacher_namephonenumber 三个字段,主键为 teacher_id,字符集 utf8,表注释为"教师表"。

    3. 审批完成后,系统会将变更的结构写入到test_database数据库中。

      重要

      下一节点为有锚点的生产发布节点,进入该节点后将不允许回退到上一节点进行设计或发布操作。

    4. 单击进入下一节点

  4. 在生产发布(锚点)节点,将表结构同步至生产库中。

    1. 单击执行变更到目标库

    2. 选择product_database数据库,并将执行策略设置为立刻执行,单击确定

    3. 提交执行后请等待审批完成。

      待审批完成后,系统会将变更的结构写入到product_database数据库中,您也可以将数据写入product_database数据库。

    4. 单击进入下一节点后,结构设计流程将会结束,工单也会自动关闭。

相关操作