3.9 KiB
3.9 KiB
会话记录 - 元数据类型定义
元数据
- 需求编号:003-02
- 需求名称:元数据类型定义
- 开始时间:2026-02-03
- 结束时间:2026-02-03
- 当前阶段:阶段 3:方案决策
阶段记录
阶段 1:需求定义
- 状态:已完成
- 需求文档:2026-01-28-003-02-元数据类型定义.md
阶段 2:方案设计
- 状态:已完成(已重新生成,覆盖原有内容)
- 设计文档:2026-02-03-003-02-元数据类型定义-设计.md
- 关键设计决策:
- 架构设计:采用分层架构(Controller → Service → Factory → Metadata API)
- 连接管理:复用 003-01 的 MetadataConnectionFactory
- 技术选型:
- JAXB 2.3.x 用于元数据对象与 XML 转换
- ZipOutputStream 用于创建部署包
- Spring @Async 用于异步日志记录
- 数据模型:创建
datai_metadata_deploy_log表,包含 18 个字段和 7 个索引 - 部署流程:创建 ZIP → 执行部署 → 异步记录日志 → 轮询部署状态
- 接口设计:8 个 REST API 接口(7 个部署接口 + 1 个日志查询接口)
- 支持的元数据类型:CustomObject、CustomField、ApexClass、ApexTrigger、ApexPage、ApexComponent、Flow
- 状态轮询:最多 60 次轮询,每 5 秒一次,支持超时处理
- 错误处理:统一的异常转换规则,使用专用错误码
- 性能优化:异步日志、连接复用、ZIP 压缩、索引优化
阶段 3:方案决策
- 状态:已完成(已重新生成,覆盖原有内容)
- 决策文档:2026-02-03-003-02-ADR-元数据部署技术选型.md
- 关键决策内容:
- XML 序列化方案:使用 JAXB,标准化与兼容性好,与 WSC 集成度高
- ZIP 包构建方案:使用 Java 原生 ZipOutputStream,依赖最小化
- 部署交互模式:同步轮询封装(后端轮询),前端交互简化
- 日志记录策略:异步方式记录日志,性能优化
- 部署超时策略:5 分钟超时(60 次轮询,每 5 秒一次)
阶段 4:数据库结构生成
- 状态:已完成
- 涉及数据库变更:是
- SQL 脚本:2026-02-03-003-02-元数据部署日志.sql
- 数据库变更内容:
- 创建表:
datai_metadata_deploy_log- 18 个字段:id, operation_type, metadata_type, metadata_name, deploy_id, status, number_component_errors, number_components_deployed, number_test_errors, number_tests_completed, error_message, operation_time, user_id, create_by, create_time, update_by, update_time, del_flag
- 7 个索引:idx_operation_type, idx_metadata_type, idx_status, idx_deploy_id, idx_operation_time, idx_user_id, idx_create_time
- 数据字典:
- metadata_operation_type:7 种操作类型(部署自定义对象、部署自定义字段、部署Apex类、部署Apex触发器、部署Visualforce页面、部署Visualforce组件、部署Flow)
- metadata_deploy_status:6 种部署状态(队列中、进行中、成功、失败、已取消、超时)
- 创建表:
待完成阶段
- 阶段 3:方案决策
- 阶段 4:数据库结构生成
- 阶段 5:提示词生成
- 阶段 6:代码生成
- 阶段 7:会话记录
- 阶段 8:变更日志
- 阶段 9:复盘和 API 文档
- 阶段 10:代码提交