# 审计记录:API vs ODS 对比 v2 - 日期:2026-02-13(Asia/Shanghai) - Prompt-ID:P20260213-223000 - 原始原因:用户要求用 API 参考文档比对数据库 ODS 实际表结构(不依赖 DDL),生成对比报告和 ALTER SQL。上一次运行结果不准确,要求重做。 - 直接原因:前次比对脚本存在 bug(stock_goods_category_tree 嵌套结构未正确解析),需重写脚本并重新生成报告。 ## 改动方案 1. 重写 `scripts/compare_api_ods_v2.py`: - 从 `docs/api-reference/*.md` 的 JSON 样例提取字段 - 查询 PostgreSQL `billiards_ods` 实际列 - 处理三种特殊结构:标准 `data.list`、嵌套 `siteProfile+settleList`、数组包装 `goodsCategoryList` - 输出 JSON + Markdown 报告 2. 运行脚本,生成 `docs/reports/api_ods_comparison_v2.json` 和 `.md` ## 结论 - 22 张 ODS 表全部与 API JSON 字段对齐(API 字段 ⊆ ODS 列) - 0 张漂移,无需 ALTER SQL - 3 张跳过(settlement_ticket_details 标记 skip,role_area_association / tenant_member_balance_overview 无 ODS 表) - ODS 独有列共 97 个(非元列),均为 ETL 派生列或历史新增字段,API 样例中不存在但不影响数据完整性 ## Changed | 文件 | 操作 | |------|------| | `scripts/compare_api_ods_v2.py` | 重写(完整脚本) | | `docs/reports/api_ods_comparison_v2.json` | 新建(JSON 报告) | | `docs/reports/api_ods_comparison_v2.md` | 新建(Markdown 报告) | ## Risk / Verify - 风险:纯分析脚本 + 报告文档,无运行时影响,不修改数据库 - 验证: 1. `python scripts/compare_api_ods_v2.py` 输出 "对齐 22 / 漂移 0" 2. 检查 `docs/reports/api_ods_comparison_v2.md` 汇总表中无 ⚠️ 漂移行 3. JSON 报告中所有 `api_only` 数组为空