feat(GOV-007): 建立开发库 Schema 基线门禁
This commit is contained in:
@@ -123,6 +123,15 @@ count += 1;
|
||||
- 每份迁移脚本必须能够从上一版本基线在 MySQL 5.7 正向执行;禁止用直接修改共享数据库表代替迁移脚本。
|
||||
- 代码 Review 必须检查服务端版本、字符集、排序规则、SQL/迁移兼容性、索引长度和字符串比较语义;任一不符合项按 Important 处理并阻断发布。
|
||||
|
||||
### Schema 基线规范
|
||||
|
||||
- 每个新应用版本开发前必须封存上一已发布版本的开发库 Schema;只能读取 `APP_ENV=development`、`a_share_analysis_dev`,禁止连接、探测或读取生产数据库。
|
||||
- 导出使用 MySQL 5.7 `mysqldump` 的 `--no-data --routines --triggers --events`,完整保留表、索引、外键、视图、触发器、存储过程、函数和事件,不得包含任何表数据。
|
||||
- 规范化必须确定性删除导出时间、环境 `DEFINER` 和表选项中的当前 `AUTO_INCREMENT=<值>`,同时保留列定义的 `AUTO_INCREMENT` 属性和业务 SQL。
|
||||
- 账号密码只能通过受控子进程环境传递,不得进入参数、日志、SQL、清单或 checksum 文件。
|
||||
- `manifest.yaml`、`checksum.sha256` 和 `schema.sql` 的 SHA-256 必须一致;既有版本目录只允许内容完全一致的幂等验证,不允许覆盖。
|
||||
- MySQL 未启用时只创建状态为 `not_applicable` 的清单,不得创建空 `schema.sql`;启用后的缺失基线必须阻断下一版本开发。
|
||||
|
||||
## 12. 测试要求
|
||||
|
||||
- 功能和缺陷修复遵循测试先行:先看到测试因缺少行为而失败,再实现最小代码。
|
||||
|
||||
Reference in New Issue
Block a user