Backend fixes: - Fix PgBoss task infinite loop on SAE (root cause: missing queue table constraints) - Add singletonKey to prevent duplicate job enqueueing - Add idempotency check in reviewWorker (skip completed tasks) - Add optimistic locking in reviewService (atomic status update) Frontend fixes: - Add isSubmitting state to prevent duplicate submissions in RVW Dashboard - Fix API baseURL in knowledgeBaseApi (relative path) Cleanup (removed): - Old frontend/ directory (migrated to frontend-v2) - python-microservice/ (unused, replaced by extraction_service) - Root package.json and node_modules (accidentally created) - redcap-docker-dev/ (external dependency) - Various temporary files and outdated docs in root New documentation: - docs/07-运维文档/01-PgBoss队列监控与维护.md - docs/07-运维文档/02-故障预防检查清单.md - docs/07-运维文档/03-数据库迁移注意事项.md Database fix applied to RDS: - Added PRIMARY KEY to platform_schema.queue - Added 3 missing foreign key constraints Tested: Local build passed, RDS constraints verified
📁 2026年1月26日部署文档
部署日期:2026-01-26
上次部署:2025-12-25(1个月前)
主要变更:数据库插件、OSS分离、Python更新、IIT生产环境
📋 文档索引
| 序号 | 文档名称 | 描述 | 优先级 |
|---|---|---|---|
| 00 | 0126部署总体计划 | 部署概览、顺序、检查清单 | ⭐⭐⭐⭐⭐ |
| 01 | 数据库升级方案 | pg_bigm、pgvector插件、测试/生产分离 | ⭐⭐⭐⭐⭐ |
| 02 | OSS环境配置方案 | Bucket创建、RAM权限、环境变量 | ⭐⭐⭐⭐ |
| 03 | Python服务更新方案 | pypdf、pypandoc新增 | ⭐⭐⭐ |
| 04 | 后端服务部署方案 | Node.js后端、Prisma、环境变量 | ⭐⭐⭐⭐ |
| 05 | 前端服务部署方案 | React前端、Nginx | ⭐⭐⭐ |
| 06 | IIT回调地址修复方案 | natapp → 生产环境 | ⭐⭐⭐ |
| 07 | 0126部署状态真实记录 | 实时部署状态、IP变更记录 | ⭐⭐⭐⭐⭐ |
| 08 | 部署完成总结 | 成果总结、经验教训 | ⭐⭐⭐⭐⭐ |
🎯 推荐阅读顺序
1. 首先阅读总体计划
- 00-0126部署总体计划.md
- 了解所有变更项和部署顺序
2. 按优先级执行
P0(基础设施)→ P1(服务更新)→ P2(配置修复)
3. 部署顺序
1. 数据库升级(插件安装、环境分离)
2. OSS配置(创建Bucket、配置权限)
3. Python服务更新
4. Node.js后端更新
5. 前端Nginx更新
6. IIT回调地址修复
7. 全面验证
📊 变更汇总
数据库变更 ✅
- ✅ 安装pg_bigm插件v1.2(中文全文检索)
- ✅ 安装pgvector插件v0.8.0(向量存储)
- ✅ 创建测试数据库(环境分离)
- ✅ Prisma Schema同步16个Schema,63个模型
OSS存储变更 ⏳
- ⏳ 创建开发Bucket(ai-clinical-data-dev, ai-clinical-static-dev)
- ⏳ 创建生产Bucket(ai-clinical-data, ai-clinical-static)
- ✅ 环境变量已配置(使用开发Bucket)
Python服务变更 ✅
- ✅ 新增pymupdf4llm(替代nougat)
- ✅ 新增openpyxl、pypandoc、python-pptx
- ✅ 镜像版本:v1.0 → v1.1
Node.js后端变更 ✅
- ✅ 修复pino-pretty生产环境错误
- ✅ 修复ES Module导入路径
- ✅ 环境变量更新(DATABASE_URL、EXTRACTION_SERVICE_URL)
- ✅ 镜像版本:v1.3 → v1.7
前端变更 ✅
- ✅ 代码恢复(空文件从备份恢复)
- ✅ Dockerfile优化(跳过TypeScript检查)
- ✅ 镜像版本:v1.2 → v1.3
IIT回调地址 ⏳
- ⏳ 企业微信回调:devlocal → iit.xunzhengyixue.com
- ⏳ 微信服务号回调:devlocal → iit.xunzhengyixue.com
⏱️ 实际耗时
| 阶段 | 任务 | 预计时间 | 实际时间 |
|---|---|---|---|
| 1 | 数据库升级 | 1小时 | 1小时 ✅ |
| 2 | OSS配置 | 30分钟 | 已配置(Bucket待创建) |
| 3 | Python服务 | 50分钟 | 1小时 ✅ |
| 4 | Node.js后端 | 1小时 | 15小时 ⚠️ |
| 5 | 前端Nginx | 30分钟 | 1小时 ✅ |
| 6 | IIT回调配置 | 30分钟 | 待配置 |
| 7 | 全面验证 | 1小时 | 待执行 |
| 总计 | - | 5-6小时 | 约17小时 |
说明:后端部署耗时长主要因为:
- 空文件恢复(2小时)
- pino-pretty错误调试(3小时)
- ES Module导入路径修复(1小时)
- 网络问题重试(1小时)
- 多次构建和部署(8小时)
📞 紧急联系
如遇到问题,请参考各文档中的问题排查章节,或联系开发团队。
创建时间:2026-01-26
维护人员:开发团队