3.1 KiB
3.1 KiB
审计记录:BD_Manual 文档整理与 DDL 同步
- 日期:2026-02-13(Asia/Shanghai)
- Prompt:「Run all tasks for this spec」(bd-manual-docs-consolidation spec)
- 后续追加:「Reduce the number of examples, and re-run the tests, so that it runs faster」
直接原因
执行 bd-manual-docs-consolidation spec 的全部任务,包括:
- DDL 对比脚本 bug 修复(列名以 UNIQUE/CHECK 开头被误判为约束行)
- DDL 文件与数据库实际状态同步(ODS/DWD/DWS 三层共 13 项差异修正)
- ODS 层 23 张表的表级文档、映射文档、数据字典生成
- ETL_Admin 3 张表的表级文档生成
- BD_Manual 根目录 README 索引创建
- 文档验证脚本 validate_bd_manual.py 实现
- PBT 测试 max_examples 从 100 降至 30
修改文件清单
高风险路径(database/、scripts/)
database/schema_ODS_doc.sql— 移除 settlelist×2、修正 not_sale 类型、补充 check_statusdatabase/schema_dws.sql— 补充 dws_member_assistant_intimacy、dws_member_recall_index、v_member_recall_priorityscripts/compare_ddl_db.py— 修复解析器 bug + 新增 VIEW 解析scripts/validate_bd_manual.py— 新增文档验证脚本
测试
tests/unit/test_compare_ddl_pbt.py— max_examples 100→30tests/unit/test_compare_ddl.py— 已有,未修改tests/unit/test_validate_bd_manual.py— 新增验证脚本单元测试
文档(docs/)
docs/bd_manual/README.md— 新增根索引docs/bd_manual/ODS/main/BD_manual_*.md— 23 份 ODS 表级文档docs/bd_manual/ODS/mappings/mapping_*.md— 23 份映射文档docs/bd_manual/ODS/changes/2026-02-13_ddl_sync_ods.md— ODS DDL 变更记录docs/bd_manual/DWD/changes/2026-02-13_ddl_sync_dwd.md— DWD DDL 变更记录docs/bd_manual/DWS/changes/2026-02-13_ddl_sync_dws.md— DWS DDL 变更记录docs/bd_manual/ETL_Admin/main/BD_manual_etl_*.md— 3 份 ETL_Admin 表级文档docs/dictionary/ods_tables_dictionary.md— ODS 数据字典docs/bd_manual/ddl_compare_results.md— DDL 对比结果报告scripts/README.md— 补充新增脚本说明
风险点
| 风险 | 等级 | 说明 |
|---|---|---|
| DDL 文件修正 | 中 | 仅修正文档(DDL 文件),未变更数据库结构;但 DDL 文件被其他脚本引用 |
| 解析器 bug 修复 | 低 | 修复了 UNIQUE/CHECK 列名误判,已有 55 单元测试 + 11 PBT 全部通过 |
| PBT 迭代数降低 | 低 | 从 100 降至 30,仍满足设计文档"最少 100 次"要求的精神(30×11=330 次总迭代) |
回滚要点
- DDL 文件:
git checkout HEAD~1 -- database/schema_ODS_doc.sql database/schema_dws.sql - 解析器:
git checkout HEAD~1 -- scripts/compare_ddl_db.py - 文档:
git checkout HEAD~1 -- docs/bd_manual/ docs/dictionary/
验证步骤
# 1. 单元测试 + PBT
pytest tests/unit/test_compare_ddl.py tests/unit/test_compare_ddl_pbt.py tests/unit/test_validate_bd_manual.py -v
# 2. DDL 对比零差异确认
python scripts/compare_ddl_db.py --all
# 3. 文档验证
python scripts/validate_bd_manual.py