# 🚀 AI临床研究平台 - 2026年1月26日部署计划 > **文档版本**:v1.0 > **创建日期**:2026-01-26 > **计划部署日期**:2026-01-26 ~ 2026-01-28 > **上次部署日期**:2025-12-25(1个月前) > **文档目的**:梳理本次部署的所有变更项,制定部署顺序和计划 --- ## 📋 一、部署变更总览 ### 本次部署涉及的主要变更 | 序号 | 变更项 | 类型 | 优先级 | 详细文档 | |------|--------|------|--------|---------| | 1 | **PostgreSQL数据库升级** | 基础设施 | 🔴 P0 | [01-数据库升级方案.md](./01-数据库升级方案.md) | | 2 | **OSS存储环境分离** | 基础设施 | 🔴 P0 | [02-OSS环境配置方案.md](./02-OSS环境配置方案.md) | | 3 | **Python微服务更新** | 服务更新 | 🟡 P1 | [03-Python服务更新方案.md](./03-Python服务更新方案.md) | | 4 | **Node.js后端更新** | 服务更新 | 🟡 P1 | [04-后端服务部署方案.md](./04-后端服务部署方案.md) | | 5 | **前端Nginx更新** | 服务更新 | 🟡 P1 | [05-前端服务部署方案.md](./05-前端服务部署方案.md) | | 6 | **IIT回调地址修复** | 配置变更 | 🟢 P2 | [06-IIT回调地址修复方案.md](./06-IIT回调地址修复方案.md) | --- ## 🔄 二、当前状态 vs 目标状态 ### 2.1 当前部署状态(2025-12-25部署) | 服务 | 版本 | 内网地址 | 最后更新 | |------|------|---------|---------| | PostgreSQL | 15 | RDS | 2025-12-24 | | 前端Nginx | v1.2 | `172.17.173.80:80` | 2026-01-01 | | Node.js后端 | v1.3 | `172.17.173.73:3001` | 2025-12-25 | | Python微服务 | v1.0 | `172.17.173.66:8000` | 2025-12-24 | **公网访问**: - CLB地址:`http://8.140.53.236/` - 域名:`https://iit.xunzhengyixue.com/` ### 2.2 目标部署状态(2026-01-26部署后) | 服务 | 目标版本 | 主要变更 | |------|---------|---------| | PostgreSQL | 15 + 插件 | 添加pg_bigm、pgvector插件;测试/生产数据库分离 | | 前端Nginx | v1.3 | 大量UI更新 | | Node.js后端 | v1.4 | IIT模块、ASL模块、DB Schema变更 | | Python微服务 | v1.1 | 添加pypdf、pypandoc | --- ## 📊 三、详细变更清单 ### 3.1 数据库变更 🔴 **变更内容**: 1. **新增PostgreSQL插件**: - `pg_bigm`:全文检索增强 - `pgvector`:向量存储(RAG支持) 2. **数据库环境分离**: - **测试数据库**:`ai_clinical_research_test`(SAE测试环境使用) - **生产数据库**:`ai_clinical_research`(生产环境使用) 3. **Schema变更**: - Prisma Schema需要添加 `iit_schema`(当前未在schemas数组中) - 新增表:IIT模块5个表已存在,但需验证同步 - 可能有其他表结构变更 **风险评估**:🔴 高风险 - 数据库变更需要仔细操作 ### 3.2 OSS存储变更 🔴 **变更内容**: 1. **开发环境Bucket**: - `ai-clinical-data-dev`:开发数据存储 - `ai-clinical-static-dev`:开发静态资源 2. **生产环境Bucket**: - `ai-clinical-data`:生产数据存储 - `ai-clinical-static`:生产静态资源 3. **新增环境变量**: ```bash OSS_BUCKET=ai-clinical-data # 数据Bucket OSS_BUCKET_STATIC=ai-clinical-static # 静态资源Bucket OSS_INTERNAL=true # SAE使用内网 ``` **风险评估**:🟡 中风险 - 需要创建新Bucket并配置权限 ### 3.3 Python服务变更 🟡 **变更内容**: 1. **新增依赖**: - `pypdf`:PDF处理增强 - `pypandoc`:文档格式转换 2. **确认已移除**: - `nougat-ocr`:已在12月24日移除 **镜像版本**:v1.0 → v1.1 **风险评估**:🟡 中风险 - 需要重新构建镜像 ### 3.4 Node.js后端变更 🟡 **变更内容**: 1. **代码更新**: - IIT Manager Agent模块完善 - ASL文献筛选模块更新 - DC数据清洗模块更新 - 其他功能更新 2. **Prisma Schema更新**: - 需要执行 `prisma db push` 或迁移 3. **环境变量更新**: - OSS相关变量更新 - 可能需要新增其他变量 **镜像版本**:v1.3 → v1.4 **风险评估**:🟡 中风险 - 需要确保Schema同步 ### 3.5 前端Nginx变更 🟡 **变更内容**: 1. **代码更新**: - IIT Manager Agent前端 - ASL文献筛选UI - DC数据清洗UI - 其他UI更新 **镜像版本**:v1.2 → v1.3 **风险评估**:🟢 低风险 - 前端更新相对独立 ### 3.6 IIT回调地址修复 🟢 **变更内容**: 1. **问题描述**: - 当前使用natapp内网穿透:`https://devlocal.xunzhengyixue.com/api/v1/iit/patient-wechat/callback` - 需要改为生产环境:`https://iit.xunzhengyixue.com/api/v1/iit/patient-wechat/callback` 2. **需要修改的位置**: - 企业微信后台回调URL配置 - 微信服务号后台回调URL配置 - 代码中的硬编码地址(如有) - 相关文档中的地址 **风险评估**:🟢 低风险 - 配置变更 --- ## 📅 四、部署顺序与计划 ### 阶段1:基础设施准备(Day 1上午) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 1.1 | 备份当前RDS数据库 | 30分钟 | DBA | | 1.2 | 安装pg_bigm、pgvector插件 | 30分钟 | DBA | | 1.3 | 创建测试数据库 | 15分钟 | DBA | | 1.4 | 创建OSS新Bucket | 15分钟 | 运维 | | 1.5 | 配置OSS RAM权限 | 15分钟 | 运维 | ### 阶段2:Python服务更新(Day 1中午) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 2.1 | 更新requirements-prod.txt | 5分钟 | 开发 | | 2.2 | 本地构建Docker镜像 | 15分钟 | 开发 | | 2.3 | 推送镜像到ACR | 10分钟 | 开发 | | 2.4 | SAE部署新版本 | 10分钟 | 运维 | | 2.5 | 验证Python服务 | 5分钟 | 开发 | ### 阶段3:Node.js后端更新(Day 1下午) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 3.1 | 更新Prisma Schema | 10分钟 | 开发 | | 3.2 | 执行数据库迁移 | 10分钟 | 开发 | | 3.3 | 本地编译TypeScript | 5分钟 | 开发 | | 3.4 | 构建Docker镜像 | 15分钟 | 开发 | | 3.5 | 推送镜像到ACR | 10分钟 | 开发 | | 3.6 | 更新SAE环境变量 | 10分钟 | 运维 | | 3.7 | SAE部署新版本 | 10分钟 | 运维 | | 3.8 | 验证后端服务 | 10分钟 | 开发 | ### 阶段4:前端Nginx更新(Day 1傍晚) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 4.1 | 构建Docker镜像 | 10分钟 | 开发 | | 4.2 | 推送镜像到ACR | 5分钟 | 开发 | | 4.3 | 更新SAE环境变量(如需) | 5分钟 | 运维 | | 4.4 | SAE部署新版本 | 5分钟 | 运维 | | 4.5 | 验证前端服务 | 5分钟 | 开发 | ### 阶段5:IIT回调配置(Day 1晚间) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 5.1 | 更新企业微信回调URL | 10分钟 | 运维 | | 5.2 | 更新微信服务号回调URL | 10分钟 | 运维 | | 5.3 | 验证回调功能 | 10分钟 | 开发 | ### 阶段6:全面验证(Day 2) | 步骤 | 任务 | 预计时间 | 负责人 | |------|------|---------|--------| | 6.1 | 功能全面测试 | 2小时 | 测试 | | 6.2 | 性能检查 | 30分钟 | 开发 | | 6.3 | 日志检查 | 30分钟 | 运维 | | 6.4 | 文档更新 | 1小时 | 开发 | --- ## 📝 五、部署检查清单 ### 5.1 部署前检查 - [ ] 确认RDS数据库可访问 - [ ] 确认ACR镜像仓库可登录 - [ ] 确认SAE控制台可访问 - [ ] 确认OSS控制台可访问 - [ ] 确认企业微信后台可访问 - [ ] 确认微信服务号后台可访问 - [ ] 本地Docker环境就绪 - [ ] 备份当前数据库 ### 5.2 部署后检查 - [ ] RDS插件安装成功(pg_bigm、pgvector) - [ ] 测试数据库创建成功 - [ ] OSS新Bucket创建成功 - [ ] Python服务健康检查通过 - [ ] Node.js后端健康检查通过 - [ ] 前端Nginx服务正常 - [ ] 企业微信回调验证通过 - [ ] 微信服务号回调验证通过 - [ ] 完整业务流程测试通过 --- ## ⚠️ 六、风险与回滚计划 ### 6.1 风险评估 | 风险项 | 概率 | 影响 | 应对措施 | |--------|------|------|---------| | 数据库迁移失败 | 低 | 高 | 备份恢复 | | Prisma Schema不兼容 | 中 | 高 | 回滚Schema | | OSS权限问题 | 中 | 中 | 检查RAM策略 | | 服务内网地址变更 | 高 | 中 | 更新环境变量 | | 企业微信回调失败 | 低 | 低 | 检查配置 | ### 6.2 回滚计划 **Python服务回滚**: ```bash # 在SAE控制台选择旧版本 v1.0 重新部署 ``` **Node.js后端回滚**: ```bash # 在SAE控制台选择旧版本 v1.3 重新部署 ``` **前端回滚**: ```bash # 在SAE控制台选择旧版本 v1.2 重新部署 ``` **数据库回滚**: ```bash # 使用RDS自动备份恢复 ``` --- ## 📚 七、相关文档索引 ### 部署操作文档 - [01-数据库升级方案.md](./01-数据库升级方案.md) - [02-OSS环境配置方案.md](./02-OSS环境配置方案.md) - [03-Python服务更新方案.md](./03-Python服务更新方案.md) - [04-后端服务部署方案.md](./04-后端服务部署方案.md) - [05-前端服务部署方案.md](./05-前端服务部署方案.md) - [06-IIT回调地址修复方案.md](./06-IIT回调地址修复方案.md) ### 参考文档 - [00-阿里云SAE最新真实状态记录.md](../00-阿里云SAE最新真实状态记录.md) - [19-日常更新快速操作手册.md](../19-日常更新快速操作手册.md) - [17-完整部署实战手册-2025版.md](../17-完整部署实战手册-2025版.md) --- ## 📞 八、联系方式 - **项目负责人**:开发团队 - **DBA**:待指定 - **运维**:待指定 - **紧急联系**:待指定 --- > **提示**:本文档为部署总体计划,具体操作步骤请参考各子文档 > **最后更新**:2026-01-26 > **下次更新**:部署完成后