Files
a-share-analysis/docs/features/GOV-007-development-schema-baseline/requirements.md
T

2.1 KiB
Raw Blame History

工程需求

安全配置

  • APP_ENV 必须为 development,MYSQL_DATABASE 必须为 a_share_analysis_dev。
  • 字符集固定 utf8mb4,排序规则固定 utf8mb4_general_ci。
  • 启用 MySQL 后 host、port、username、password 均为必填;密码只通过子进程环境传递。
  • 启用 MySQL 时主机只能是本机回环地址;远程开发库必须先由运维建立本地 SSH 隧道,脚本不接受任意远程目标。
  • 命令行不接受 env 文件、环境类型、数据库名或其他覆盖参数。

数据库与导出

  • 客户端和服务端版本必须匹配 MySQL 5.7.x。
  • 执行元数据查询的 mysql 客户端和执行导出的 mysqldump 客户端都必须分别验证为 5.7.x。
  • mysqldump 使用 --no-data --routines --triggers --events,不得输出 INSERT 或 REPLACE。
  • 完整对象范围为表、索引、外键、视图、触发器、存储过程、函数和事件。
  • 规范化删除不稳定注释、环境 DEFINER 和表选项当前自增值,保留列自增属性。

产物与校验

  • 目录固定为 database/schema-baselines/<已发布版本>/。
  • 真实基线包含 schema.sql、manifest.yaml、checksum.sha256。
  • manifest.yaml 使用 JSON 兼容 YAML 的结构化格式,可由标准 JSON 解析器读取。
  • 清单记录版本、标签提交、来源环境、库名、版本、字符规则、对象范围、生成器和 SHA-256。
  • 目录采用同父目录临时写入后原子改名;既有目录只允许逐字节相同的幂等重跑。
  • MySQL 未启用时只生成 manifest.yaml,状态为 not_applicable,原因是 mysql_disabled,所有对象均为未捕获。

流程

  • governance:start 在写入功能档案或刷新 GitNexus 前只读验证上一发布版本基线。
  • governance:start 还要求基线文件已被 Git 跟踪、无未提交改动、当前分支已推送且远程发布标签提交一致;schema:verify 只负责本地内容校验。
  • governance:finish 运行全部既有治理测试、Schema 测试和基线验证。
  • 本版本实际产物为 v0.0.5 的 N/A 清单,不连接任何数据库。