Files
AIclinicalresearch/docs/05-部署文档/0126部署/00-0126部署总体计划.md
HaHafeng 2481b786d8 deploy: Complete 0126-27 deployment - database upgrade, services update, code recovery
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
2026-01-27 08:13:27 +08:00

316 lines
9.7 KiB
Markdown
Raw Permalink 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.
# 🚀 AI临床研究平台 - 2026年1月26日部署计划
> **文档版本**v1.0
> **创建日期**2026-01-26
> **计划部署日期**2026-01-26 ~ 2026-01-28
> **上次部署日期**2025-12-251个月前
> **文档目的**:梳理本次部署的所有变更项,制定部署顺序和计划
---
## 📋 一、部署变更总览
### 本次部署涉及的主要变更
| 序号 | 变更项 | 类型 | 优先级 | 详细文档 |
|------|--------|------|--------|---------|
| 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分钟 | 运维 |
### 阶段2Python服务更新Day 1中午
| 步骤 | 任务 | 预计时间 | 负责人 |
|------|------|---------|--------|
| 2.1 | 更新requirements-prod.txt | 5分钟 | 开发 |
| 2.2 | 本地构建Docker镜像 | 15分钟 | 开发 |
| 2.3 | 推送镜像到ACR | 10分钟 | 开发 |
| 2.4 | SAE部署新版本 | 10分钟 | 运维 |
| 2.5 | 验证Python服务 | 5分钟 | 开发 |
### 阶段3Node.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分钟 | 开发 |
### 阶段5IIT回调配置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
> **下次更新**:部署完成后