Major Changes: - Database: Install pg_bigm/pgvector plugins, create test database - Python service: v1.0 -> v1.1, add pymupdf4llm/openpyxl/pypandoc - Node.js backend: v1.3 -> v1.7, fix pino-pretty and ES Module imports - Frontend: v1.2 -> v1.3, skip TypeScript check for deployment - Code recovery: Restore empty files from local backup Technical Fixes: - Fix pino-pretty error in production (conditional loading) - Fix ES Module import paths (add .js extensions) - Fix OSSAdapter TypeScript errors - Update Prisma Schema (63 models, 16 schemas) - Update environment variables (DATABASE_URL, EXTRACTION_SERVICE_URL, OSS) - Remove deprecated variables (REDIS_URL, DIFY_API_URL, DIFY_API_KEY) Documentation: - Create 0126 deployment folder with 8 documents - Update database development standards v2.0 - Update SAE deployment status records Deployment Status: - PostgreSQL: ai_clinical_research_test with plugins - Python: v1.1 @ 172.17.173.84:8000 - Backend: v1.7 @ 172.17.173.89:3001 - Frontend: v1.3 @ 172.17.173.90:80 Tested: All services running successfully on SAE
9.7 KiB
9.7 KiB
🚀 AI临床研究平台 - 2026年1月26日部署计划
文档版本:v1.0
创建日期:2026-01-26
计划部署日期:2026-01-26 ~ 2026-01-28
上次部署日期:2025-12-25(1个月前)
文档目的:梳理本次部署的所有变更项,制定部署顺序和计划
📋 一、部署变更总览
本次部署涉及的主要变更
| 序号 | 变更项 | 类型 | 优先级 | 详细文档 |
|---|---|---|---|---|
| 1 | PostgreSQL数据库升级 | 基础设施 | 🔴 P0 | 01-数据库升级方案.md |
| 2 | OSS存储环境分离 | 基础设施 | 🔴 P0 | 02-OSS环境配置方案.md |
| 3 | Python微服务更新 | 服务更新 | 🟡 P1 | 03-Python服务更新方案.md |
| 4 | Node.js后端更新 | 服务更新 | 🟡 P1 | 04-后端服务部署方案.md |
| 5 | 前端Nginx更新 | 服务更新 | 🟡 P1 | 05-前端服务部署方案.md |
| 6 | IIT回调地址修复 | 配置变更 | 🟢 P2 | 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 数据库变更 🔴
变更内容:
-
新增PostgreSQL插件:
pg_bigm:全文检索增强pgvector:向量存储(RAG支持)
-
数据库环境分离:
- 测试数据库:
ai_clinical_research_test(SAE测试环境使用) - 生产数据库:
ai_clinical_research(生产环境使用)
- 测试数据库:
-
Schema变更:
- Prisma Schema需要添加
iit_schema(当前未在schemas数组中) - 新增表:IIT模块5个表已存在,但需验证同步
- 可能有其他表结构变更
- Prisma Schema需要添加
风险评估:🔴 高风险 - 数据库变更需要仔细操作
3.2 OSS存储变更 🔴
变更内容:
-
开发环境Bucket:
ai-clinical-data-dev:开发数据存储ai-clinical-static-dev:开发静态资源
-
生产环境Bucket:
ai-clinical-data:生产数据存储ai-clinical-static:生产静态资源
-
新增环境变量:
OSS_BUCKET=ai-clinical-data # 数据Bucket OSS_BUCKET_STATIC=ai-clinical-static # 静态资源Bucket OSS_INTERNAL=true # SAE使用内网
风险评估:🟡 中风险 - 需要创建新Bucket并配置权限
3.3 Python服务变更 🟡
变更内容:
-
新增依赖:
pypdf:PDF处理增强pypandoc:文档格式转换
-
确认已移除:
nougat-ocr:已在12月24日移除
镜像版本:v1.0 → v1.1
风险评估:🟡 中风险 - 需要重新构建镜像
3.4 Node.js后端变更 🟡
变更内容:
-
代码更新:
- IIT Manager Agent模块完善
- ASL文献筛选模块更新
- DC数据清洗模块更新
- 其他功能更新
-
Prisma Schema更新:
- 需要执行
prisma db push或迁移
- 需要执行
-
环境变量更新:
- OSS相关变量更新
- 可能需要新增其他变量
镜像版本:v1.3 → v1.4
风险评估:🟡 中风险 - 需要确保Schema同步
3.5 前端Nginx变更 🟡
变更内容:
- 代码更新:
- IIT Manager Agent前端
- ASL文献筛选UI
- DC数据清洗UI
- 其他UI更新
镜像版本:v1.2 → v1.3
风险评估:🟢 低风险 - 前端更新相对独立
3.6 IIT回调地址修复 🟢
变更内容:
-
问题描述:
- 当前使用natapp内网穿透:
https://devlocal.xunzhengyixue.com/api/v1/iit/patient-wechat/callback - 需要改为生产环境:
https://iit.xunzhengyixue.com/api/v1/iit/patient-wechat/callback
- 当前使用natapp内网穿透:
-
需要修改的位置:
- 企业微信后台回调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服务回滚:
# 在SAE控制台选择旧版本 v1.0 重新部署
Node.js后端回滚:
# 在SAE控制台选择旧版本 v1.3 重新部署
前端回滚:
# 在SAE控制台选择旧版本 v1.2 重新部署
数据库回滚:
# 使用RDS自动备份恢复
📚 七、相关文档索引
部署操作文档
参考文档
📞 八、联系方式
- 项目负责人:开发团队
- DBA:待指定
- 运维:待指定
- 紧急联系:待指定
提示:本文档为部署总体计划,具体操作步骤请参考各子文档
最后更新:2026-01-26
下次更新:部署完成后