Files
Neo-ZQYY/.kiro/specs/bd-manual-docs-consolidation/tasks.md

112 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实施计划:数据库文档整理与补全
## 概述
按照"目录结构 → DDL 对比脚本 → DDL 同步 → ODS 文档 → 映射文档 → 数据字典 → 索引"的顺序逐步完成文档体系的整理和补全。DDL 对比脚本先编写并测试,再用它驱动实际的 DDL 同步工作。
## 任务
- [x] 1. 规范化 BD_Manual 目录结构
- 创建 `docs/bd_manual/ETL_Admin/main/``docs/bd_manual/ETL_Admin/changes/` 目录
- 创建 `docs/bd_manual/ODS/mappings/` 目录
- 确认 ODS/DWD/DWS 各层均有 `main/``changes/` 子目录
- _Requirements: 1.1, 1.2, 1.3_
- [ ] 2. 编写 DDL 对比脚本
- [x] 2.1 实现 DDL 解析器和对比核心逻辑 (`scripts/compare_ddl_db.py`)
- 解析 `CREATE TABLE` 语句提取表名、字段名、字段类型、约束、主键
- 查询 `information_schema.columns` 获取数据库实际表结构
- 实现逐表逐字段对比输出差异分类MISSING_TABLE、EXTRA_TABLE、MISSING_COLUMN、EXTRA_COLUMN、TYPE_MISMATCH、NULLABLE_MISMATCH
- 支持 `--pg-dsn``--schema``--ddl-path` 参数
- _Requirements: 2.1, 2.2, 2.3, 2.4_
- [x] 2.2 编写 DDL 解析器单元测试 (`tests/unit/test_compare_ddl.py`)
- 测试 DDL 解析器正确提取表名、字段、类型、约束
- 测试差异检测逻辑识别各类差异
- 测试边界情况空文件、COMMENT 含特殊字符
- _Requirements: 2.1_
- [x] 2.3 编写 DDL 对比属性测试
- **Property 2: DDL 对比脚本差异检测完整性**
- **Validates: Requirements 2.1, 2.2, 2.3, 2.4**
- [x] 2.4 编写 DDL 修正不动点属性测试
- **Property 3: DDL 修正后零差异(不动点)**
- **Validates: Requirements 2.5**
- [x] 3. 检查点 — 确认对比脚本可用
- 确保所有测试通过,如有问题请向用户确认。
- [x] 4. 执行 DDL 对比并同步
- [x] 4.1 运行对比脚本对比四个 schemaODS、DWD、DWS、ETL_Admin
- 执行 `scripts/compare_ddl_db.py` 对比每个 schema
- 记录所有差异项
- _Requirements: 2.1, 2.2, 2.3, 2.4_
- [x] 4.2 修正 DDL 文件以匹配数据库实际状态
- 以数据库为准修正 `database/schema_ODS_doc.sql``database/schema_dwd_doc.sql``database/schema_dws.sql``database/schema_etl_admin.sql`
- _Requirements: 2.5_
- [x] 4.3 生成 DDL 变更记录
- 在对应层的 `changes/` 目录下生成差异说明文档(日期前缀命名)
- 包含变更说明、兼容性影响、回滚策略、验证 SQL至少 3 条)
- _Requirements: 2.6_
- [x] 5. 检查点 — 确认 DDL 同步完成
- 确保所有测试通过,如有问题请向用户确认。
- [x] 6. 补全 ODS 层表级文档
- [x] 6.1 为每张 ODS 表编写表级文档 (`docs/bd_manual/ODS/main/BD_manual_{表名}.md`)
- 从数据库 `information_schema.columns` 获取字段信息
- 从 DDL `COMMENT ON` 注释提取字段说明、示例值、JSON 字段映射
- 遵循 DWD/DWS 文档格式:表信息、字段说明、使用说明(含 SQL、可回溯性
- 包含 ETL 元数据字段统一说明
- _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6_
- [x] 7. 建立 API→ODS 字段映射文档
- [x] 7.1 为每个 API 端点编写映射文档 (`docs/bd_manual/ODS/mappings/mapping_{端点名}_{表名}.md`)
- 参考 `docs/api-reference/endpoints/*.md` 获取端点信息和响应字段
- 参考 DDL `COMMENT ON` 中的 `【JSON字段】` 标注获取映射关系
- 参考 `models/parsers.py``TypeParser` 的转换方法记录类型转换规则
- 包含 ETL 补充字段生成逻辑说明
- _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6_
- [x] 8. 建立 ODS 数据字典和 ETL_Admin 文档
- [x] 8.1 创建 ODS 数据字典 (`docs/dictionary/ods_tables_dictionary.md`)
- 列出所有 ODS 表概览:表名、中文说明、主键、记录数、数据来源
- 遵循现有 DWD/DWS 数据字典格式
- _Requirements: 5.1, 5.2, 5.3_
- [x] 8.2 为 ETL_Admin 表编写表级文档 (`docs/bd_manual/ETL_Admin/main/BD_manual_{表名}.md`)
- 从数据库获取 `etl_admin` schema 表结构
- 遵循统一文档格式
- _Requirements: 1.5_
- [x] 9. 编写 BD_Manual 根目录 README.md 索引
- 创建 `docs/bd_manual/README.md`
- 列出目录结构说明、各层文档清单、文档命名规范
- _Requirements: 1.4_
- [x] 10. 编写文档验证脚本
- [x] 10.1 实现文档覆盖率和格式验证脚本 (`scripts/validate_bd_manual.py`)
- 验证目录结构一致性Property 1
- 验证 ODS 文档覆盖率和命名规范Property 4, 6
- 验证 ODS 文档格式完整性Property 5
- 验证映射文档覆盖率和命名规范Property 7, 9
- 验证映射文档内容完整性Property 8
- 验证数据字典覆盖率Property 10
- 支持 `--pg-dsn` 参数连接数据库获取表清单
- _Requirements: 1.2, 3.1, 3.2, 3.6, 4.1, 4.2, 4.6, 5.2_
- [x] 11. 最终检查点 — 确认所有文档完整
- 运行 `scripts/validate_bd_manual.py` 确认所有验证通过
- 确保所有测试通过,如有问题请向用户确认。
## 备注
- 标记 `*` 的子任务为可选,可跳过以加速 MVP
- 每个任务引用了具体的需求编号以便追溯
- DDL 修正涉及 `database/` 高风险路径,完成后需触发 `/audit`
- 属性测试验证对比脚本的通用正确性,集成验证脚本验证文档体系的完整性
- ODS 表级文档和映射文档为手动编写(非自动生成),需逐表参考数据库和 API 文档