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
This commit is contained in:
315
docs/05-部署文档/0126部署/00-0126部署总体计划.md
Normal file
315
docs/05-部署文档/0126部署/00-0126部署总体计划.md
Normal file
@@ -0,0 +1,315 @@
|
||||
# 🚀 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
|
||||
> **下次更新**:部署完成后
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user