本文以设计结构(Develop,简称Dev)、测试(Test)、生产发布(Product)的表结构设计步骤向您介绍规范、安全的表结构发布流程。

背景信息

在新项目、新需求或者优化等业务场景中,一般会涉及到新建表、修改表(加减字段、加减索引、调整字段属性、调整索引组成)等结构的变更操作,此时您可以使用DMS的结构设计功能。

DMS推出的结构设计为多套研发环境开发,且在开发过程中自动检测企业需遵循的表结构研发规范,并支持多人在Web页面协同开发的功能。

结构设计功能可保障研发自助变更的同时满足企业的设计规范、不同环境之间相关表结构的一致性,同时大大提升生产发布的成功率。

结构设计功能说明:

功能说明
保障生产发布的成功率新的表结构在发布到生产环境前,会依据研发流程在逐个节点中对表结构进行验证,可避免未验证脚本直接发布到生产环境而导致发布失败的问题,保障生产发布的成功率。
保障环境结构的一致性系统会依据研发流程对逐个环境进行结构变更,可避免因部分环境未执行而导致的测试延误、项目整体发版进展延误等。
保障数据结构的规范性安全规则的研发规范包含新建表、修改表字段、修改表索引等多方面的近40条规范,方便研发同学自助设计满足企业研发规范的表结构,可避免因不满足规范的结构发布上线而导致的生产故障。同时,该功能可节省运维人员因人工检查规范而带来的人力投入,并提升研发效能,可以有效支撑快速迭代发版工作。

搭建示例的测试环境

  1. 创建3个RDS MySQL数据库实例,分别为:Schema_Design-dev、Schema_Design-test、Schema_Design-product,操作详情请参见快速创建RDS MySQL实例
  2. 将3个数据库实例录入至DMS中,将管控模式均设置为安全协同,并分别将数据库环境类型设置成开发(Dev)、测试(Test)、生产(Product)。云数据库录入的操作详情请参见云数据库录入,数据库实例环境的说明请参见实例环境说明
  3. 在3个数据库实例中分别创建3个对应的数据库:dev_database、test_database、product_database。
数据库实例与结构设计各节点的对应关系:
结构设计节点设计结构(Dev)测试(Test)生产发布(Product)
对应数据库实例名称Schema_Design-devSchema_Design-testSchema_Design-product
环境类型devtestproduct
数据库名称dev_databasetest_databaseproduct_database

步骤一:配置研发规则

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

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择安全与规范 > 安全规则
  3. 安全规则页面中,单击左上角的新增规则集按钮,新增一个规则集。
    说明 规则及名称可自定义,本示例中以SD-DT为例。
    创建新安全规则
  4. 在安全规则详情页面左侧的导航栏中,单击结构设计
  5. 结构设计页签中,单击研发流程右侧操作列中的编辑
    编辑研发流程按钮
  6. 编辑配置项对话框中,完成如下配置:
    1. 将第二条节点名称改为测试,将库环境改为test
    2. 新增第三条节点,将第三条节点名称改为生产发布,将库环境改为product,同时该节点设置为锚点
      说明 锚点:为工单编辑的冻结点,即锚点所在步骤成功发布之后,工单将会变成已发布状态,不可编辑。
    配置界面如下图所示。
    编辑研发流程
  7. 单击提交

步骤二:设置数据库实例的安全规则

将Schema_Design-dev数据库实例(环境类型为Dev)的管控模式设置为安全协同并选择步骤一创建的SD-DT安全规则。

  1. 登录数据管理DMS 5.0
  2. 在控制台首页左侧的实例列表中,右键单击Schema_Design-dev数据库实例。
  3. 在弹出的列表中,选择管控模式 > 安全协同 > SD-DT

步骤三:进行结构设计

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

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择数据库开发 > 结构变更 > 结构设计
  3. 单击页面右上角的结构设计
  4. 配置结构设计工单信息,并单击创建工单
    创建工单后,系统会自动跳转到结构设计项目首页,该项目共有5个节点,如下图所示。结构设计流程图
  5. 在设计结构节点进行配置:
    1. 单击导入建表语句
    2. 在文本框中输入以下语句,并单击确定
      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='教师表';
    3. 在控制台界面确认基本信息字段索引等信息。
    4. 单击保存,并在弹出的预检测结果窗口中单击确认无误,提交保存
    5. 单击执行变更到基准库
    6. 在弹出的对话框中,选择执行策略为立即执行,并在确认最终的SQL语句无误后单击提交执行
    7. 提交执行后请等待审批完成,待审批完成后,系统会将新的表结构写入到dev_database数据库中。
    8. 可选:前往SQL Console插入数据或提交数据变更工单对dev_database数据库进行测试。
      插入数据示例代码如下:
      insert into teacher
      (teacher_id, teacher_name, phonenumber)
      values
      ('t001', 'teacher001', '1380000001'),
      ('t002', 'teacher002', '1380000002'),
      ('t003', 'teacher003', '1380000003');
      验证通过后,即可将该变更结构发布到下一节点中。
    9. 在结构设计工单页面中,单击进入下一节点
      说明 在进行该项操作前,您可以与您的同事在该节点对dev_database数据库进行多次变更设计与验证,系统最终会产生一个create脚本,发布到下个节点。
    10. 在弹出的对话框中,再次单击进入下一节点
  6. 在测试节点进行配置:
    1. 单击执行变更到目标库
    2. 选择test_database数据库,并将执行策略设置为立刻执行,单击提交执行
      说明 提交执行后请等待审批完成,待审批完成后,系统会将变更的结构写入到test_database数据库中。
    3. 可选:前往SQL Console插入数据或提交数据变更工单对test_database数据库进行测试。
      说明 当该节点验证通过时,即可将该变更结构发布到下一节点中。
    4. 在结构设计工单页面中,单击进入下一节点
    5. 在弹出的对话框中,再次单击进入下一节点
  7. 在生产发布节点进行配置:
    1. 单击执行变更到目标库
    2. 选择product_database数据库,并将执行策略设置为立刻执行,单击提交执行
      提交执行后请等待审批完成。待审批完成后,系统会将变更的结构写入到product_database数据库中,您也可以将数据写入生产环境中(product_database数据库)。
    3. 在结构设计工单页面中,单击进入下一节点
    4. 在弹出的对话框中,再次单击进入下一节点
      整个流程结束,工单关闭。

相关文档