本文定义 DGJ 版本涉及数据库、配置中心、OA、Redis、脚本和数据修复时的统一发布清单。具体版本的字段、配置值和执行结果应追加到同一篇版本 runbook,不把上线动作分散在聊天或多个专项文档中。

1. 发布前信息

  • 版本号、需求名称、目标环境和计划时间。
  • 涉及项目、数据库 schema、表、字段、索引和数据量级。
  • 配置中心项目、namespace、key、变更目的和回滚值。
  • Redis key/缓存刷新、一次性脚本、数据回填、菜单权限和 OA 模板变更。
  • 服务重启顺序、依赖服务、验证接口和负责人。

2. DDL 执行原则

  1. 先查询 information_schema.COLUMNS/STATISTICS/TABLES 确认当前事实。
  2. 明确 schema,不因同名表存在于其他库就扩大执行范围。
  3. DDL 尽量幂等;字段或索引已存在时不重复执行。
  4. 评估锁表、全表扫描、默认值回填和大表执行时间。
  5. 执行后读回字段类型、可空、默认值、注释和索引。
  6. 生产执行需要单独风险确认和回滚方案。

3. 配置与 OA

  • 记录配置项目、namespace、key 和业务用途,敏感值只保存在配置中心或私有凭据仓。
  • OA 提交模板和回调可处理模板是两个不同控制点,必须一起验证。
  • OA 提交字段按表单公开名称还是内部字段 ID 传递,要以接口和当前模板为准。
  • 存在旧模板在途单时,明确兼容窗口和清理时间。

4. 执行记录模板

类型对象执行前动作执行后回滚
DDLschema.table.field不存在/旧定义新增或修改字段定义读回反向 DDL 或保留兼容
配置project/namespace/key旧口径发布新值服务读取正常恢复旧值
数据脚本或 SQL影响行数分批执行数量和业务抽查备份/反向脚本
服务服务名当前版本重启/发布健康检查通过回滚镜像/版本

5. 发布后验证

  • 数据库结构、配置读取和服务健康检查通过。
  • 新旧数据场景、状态流转、MQ/OA/支付回调和幂等回归通过。
  • 日志没有新增持续错误,核心业务指标没有异常。
  • runbook 中记录实际执行结果、未执行项和剩余风险。

6. 安全边界

  • 网站不记录密码、Token、Cookie、内网地址、完整配置值或生产客户数据。
  • 只写凭据 key 和配置 key;真实值从受控系统读取。
  • SQL 示例必须使用占位符,生产执行命令不进入公开文档。