您可以通过DMS的结构设计功能,便捷、规范地完成表结构变更。

背景信息

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

DMS推出的结构设计适用于多套研发环境开发(如在开发环境中验证变更的结构脚本,再一键发送至线上生产环境),且在开发过程中自动检测企业需遵循的表结构研发规范(如不允许删除在生产环境中已使用的字段),并支持多人在Web页面协同开发。

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

操作演示

  1. 以普通用户账号登录DMS控制台
  2. 在顶部菜单栏,选择库表结构 > 结构设计
    结构设计按钮
  3. 单击页面右上角的结构设计
    说明 您可以在该页面查看到历史结构设计工单(项目发布信息)。
    创建结构设计工单按钮
  4. 根据下图配置结构设计工单的基本信息,并单击创建工单
    创建结构设计工单
    配置 说明
    项目名称 填写项目名称便于后期管理,本示例中以POC演示为例。
    业务背景 描述项目的业务背景信息,例如变更目的、预期目标等,减少沟通成本。
    变更基准库 选择poc_dev数据库,由于该数据库使用默认的安全规则,在创建结构设计工单时,系统会根据该安全规则的研发流程创建出设计结构(Dev)、生产发布(Product)的结构设计流程。
    安全规则 DMS会自动选择,无需配置。
    变更相关人 单击新增按钮增加相关人员,相关人员可查看工单参与开发、评审并推动工作,非相关人员则不能查看工单(管理员、DBA除外)。
  5. 新建物理表:
    1. 单击导入建表语句结构设计-导入建表语句按钮
    2. 在弹窗中,输入以下SQL语句,并单击确定

      分别创建big_table表与data_modify表,系统将弹出两张新增物理表页签。

      结构设计-导入建表语句
      CREATE TABLE `big_table` (
        `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
        `name` varchar(64) NOT NULL COMMENT '名称',
        `long_text_a` varchar(1024) DEFAULT NULL COMMENT 'A文本',
        `long_text_b` varchar(1024) DEFAULT NULL COMMENT 'B文本',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='大表变更';
      
      CREATE TABLE `data_modify` (
        `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
        `name` varchar(256) NOT NULL COMMENT '姓名',
        `phone` varchar(32) DEFAULT NULL COMMENT '电话',
        `sex` varchar(32) DEFAULT NULL COMMENT '性别',
        `email` varchar(256) DEFAULT NULL COMMENT '邮箱',
        `desc` varchar(1024) DEFAULT NULL COMMENT '备注',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT ;
    3. 在新建data_modify表页签中,确认表结构信息。
      • 基本信息新建物理表-基本信息
      • 字段新建物理表-字段
      • 索引新建物理表-索引
    4. 单击保存。系统会显示预检查结果,如下图所示。

      在本示例中的data_modify表没有填写表备注信息、desc(数据库关键字)为字段名、没有设置字符集版本。

      说明 系统根据默认安全规则中的研发规范对本次建表语句进行校验,提示本次操作中存在2个研发规范类错误和1个警告。当前DMS的研发规范支持新建表、修改表字段、修改表索引等多方面近40条规范,您可以在安全规则中进行自定义配置。
      新建表预检测错误新建表预检测警告
    5. 根据系统提示,对data_modify表结构进行如下修改,并再次单击保存
      • 基本信息:增加数据表的备注信息(数据修改测试表),并定义字符集为utf8新建物理表-基本信息new
      • 字段:将原来的desc字段改为user_desc字段。新建物理表-字段new
    6. 预检查结果弹窗中,单击确认无误,提交保存

      单击后,系统将跳转至结构设计项目首页页签,此时data_modify表已创建成功,但未写入到开发库中。您仍可以在项目首页中对刚刚创建的表结构进行编辑、预览或删除。

    7. 单击上方的新增物理表,确认big_table表的结构信息。
    8. 确认无误后,单击保存
    9. 预检查结果弹窗中,单击确认无误,提交保存

      big_table表与data_modify表已创建成功。

  6. 新增变更相关人:
    您可以将其他开发人员加入到 变更相关人中,邀请他人共同评审(Code Review)新的表结构,推进工单,实现协同开发。
    1. 项目首页页中,单击变更相关人按钮按钮。变更相关人界面
    2. 在弹窗中,单击新增并选择目标人员。更新相关人
    3. 单击更新相关人
  7. 评审(Code Review)完成后,将新的表结构应用到开发库中:
    1. 单击执行变更到基准库
    2. 在弹出的对话框中,选择执行策略立即执行,并在确认最终的SQL语句无误后单击提交执行
      说明 当前支持以下两种 执行策略
      • 立即执行:在审批通过后,系统立即执行变更。
      • 定时执行:在审批通过后,系统根据您设定的时间点执行变更。
      执行变更到基准库
    3. 等待管理员审批完成,待审批通过后,系统会立即将新的表结构应用到开发数据库。
      说明
      • 默认的安全规则规定结构变更均需要提交审批工单,您也可以在安全规则中进行自定义配置,例如设置开发节点的变更为免审批、设置生产节点的变更由谁审批等。关于审批的操作详情请参见审批结构设计工单
      • 您可以在审批页签下,单击点我查看查询审批进度。查询审批进度
    4. 您可以前往SQL Console中查看poc_dev数据库的表详情,进行表结构验证。
      说明 当验证表结构没有问题后,即可将此结构发布到生产库中。
    5. 进入结构设计工单页面,单击进入下一节点进入下一节点
    6. 在弹出的对话框中,再次单击进入下一节点
  8. 在生产发布节点,将新的表结构应用到生产库中:
    1. 单击执行变更到目标库
    2. 在弹出的对话框中,选择poc_prod数据库,并选择执行策略立即执行,单击提交执行
      说明 该环节支持批量执行到多套生产库。
      执行变更到生产库
    3. 等待管理员审批完成,待审批通过后,系统会立即将新的表结构应用到生产数据库。
      说明 关于审批的操作详情请参见 审批结构设计工单
    4. 在结构设计工单页面中,单击进入下一节点进入下一节点-to结束
    5. 在弹出的对话框中,再次单击进入下一节点

      整个流程结束,工单关闭,您可以单击各节点查看其变更与发布记录。