Files
Neo-ZQYY/apps/etl/pipelines/feiqiu/docs/audit/changes/2026-02-13__bd-manual-docs-consolidation-ddl-sync.md

3.1 KiB
Raw Blame History

审计记录BD_Manual 文档整理与 DDL 同步

  • 日期2026-02-13Asia/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 的全部任务,包括:

  1. DDL 对比脚本 bug 修复(列名以 UNIQUE/CHECK 开头被误判为约束行)
  2. DDL 文件与数据库实际状态同步ODS/DWD/DWS 三层共 13 项差异修正)
  3. ODS 层 23 张表的表级文档、映射文档、数据字典生成
  4. ETL_Admin 3 张表的表级文档生成
  5. BD_Manual 根目录 README 索引创建
  6. 文档验证脚本 validate_bd_manual.py 实现
  7. PBT 测试 max_examples 从 100 降至 30

修改文件清单

高风险路径database/、scripts/

  • database/schema_ODS_doc.sql — 移除 settlelist×2、修正 not_sale 类型、补充 check_status
  • database/schema_dws.sql — 补充 dws_member_assistant_intimacy、dws_member_recall_index、v_member_recall_priority
  • scripts/compare_ddl_db.py — 修复解析器 bug + 新增 VIEW 解析
  • scripts/validate_bd_manual.py — 新增文档验证脚本

测试

  • tests/unit/test_compare_ddl_pbt.py — max_examples 100→30
  • tests/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