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