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:
2026-01-27 08:13:27 +08:00
parent 01a17f1e6f
commit 2481b786d8
318 changed files with 5290 additions and 3216 deletions

View File

@@ -0,0 +1,315 @@
# 🚀 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
> **下次更新**:部署完成后