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