# 工程需求 ## 安全配置 - `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 清单,不连接任何数据库。