1.8 KiB
1.8 KiB
审计记录:API vs ODS 对比 v2
- 日期:2026-02-13(Asia/Shanghai)
- Prompt-ID:P20260213-223000
- 原始原因:用户要求用 API 参考文档比对数据库 ODS 实际表结构(不依赖 DDL),生成对比报告和 ALTER SQL。上一次运行结果不准确,要求重做。
- 直接原因:前次比对脚本存在 bug(stock_goods_category_tree 嵌套结构未正确解析),需重写脚本并重新生成报告。
改动方案
- 重写
scripts/compare_api_ods_v2.py:- 从
docs/api-reference/*.md的 JSON 样例提取字段 - 查询 PostgreSQL
billiards_ods实际列 - 处理三种特殊结构:标准
data.list、嵌套siteProfile+settleList、数组包装goodsCategoryList - 输出 JSON + Markdown 报告
- 从
- 运行脚本,生成
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
- 风险:纯分析脚本 + 报告文档,无运行时影响,不修改数据库
- 验证:
python scripts/compare_api_ods_v2.py输出 "对齐 22 / 漂移 0"- 检查
docs/reports/api_ods_comparison_v2.md汇总表中无 ⚠️ 漂移行 - JSON 报告中所有
api_only数组为空