docs(deploy): Complete 0302 deployment documentation for IIT V3.1 QC engine upgrade

Summary:
- Create 0302 deployment summary (6 DB migrations + backend v2.4 + frontend v2.0)
- Update SAE status record with new IPs (172.17.197.32), versions, and history
- Update daily operations manual with incremented version numbers (backend v2.5, frontend v2.1)
- Clear pending deployment checklist and archive to history section
- Fix stale schema table counts (iit_schema 5->22, ssa_schema 0->11)

Deployment details:
- Database: 6 Prisma migrations applied (84->86 tables, 442 columns verified identical)
- Backend: v2.3->v2.4 (27 changes, IIT V3.1 QC engine + GCP report APIs)
- Frontend: v1.9->v2.0 (17 changes, GCP 5-tab reports + V3.1 dashboard)
- Both services deployed to SAE at 172.17.197.32

Made-with: Cursor
This commit is contained in:
2026-03-02 08:36:56 +08:00
parent 2030ebe28f
commit 72928d3116
5 changed files with 262 additions and 98 deletions

View File

@@ -0,0 +1,157 @@
# 2026年3月2日部署完成总结
> **部署日期**2026-03-02
> **部署范围**数据库迁移6个 + Node.js后端 + 前端Nginx 全量更新
> **部署状态**:✅ 全部完成
> **文档日期**2026-03-02
---
## 部署成果一览
### 服务版本对比
| 服务 | 部署前 | 部署后 | 变更类型 |
|------|--------|--------|---------|
| PostgreSQLRDS | 16 Schema / 84 表 | 16 Schema / **86 表** | Schema迁移6个 |
| Node.js后端 | v2.3 | **v2.4** | IIT V3.1 QC引擎全面升级 |
| 前端Nginx | v1.9 | **v2.0** | IIT GCP报表 + V3.1前端 |
### 内网地址变更
| 服务 | 部署前地址 | 部署后地址 | 状态 |
|------|-----------|-----------|------|
| Node.js后端 | `172.17.197.30:3001` | `172.17.197.32:3001` | ✅ 已变更 |
| 前端Nginx | `172.17.197.31:80` | `172.17.197.32:80` | ✅ 已变更 |
---
## 一、数据库迁移
### 1.1 迁移概览
部署前通过 Docker pg_dump 备份 RDS 测试数据库37.71 MB备份文件`backup_before_0301_deploy.dump`
通过 `prisma migrate deploy` 连接 RDS 外网地址,一次性应用 6 个迁移,全部成功。
迁移后使用 Python 脚本对比本地开发数据库与 RDS确认 iit_schema + ssa_schema **442 列完全一致,零漂移**
### 1.2 应用的迁移文件
| # | 迁移文件 | 内容 | 变更类型 |
|---|---------|------|---------|
| 1 | `20260227_align_schema_with_db_types` | SSA 表类型精度对齐 + 清理重复 FK | ALTER COLUMN + DROP CONSTRAINT |
| 2 | `20260228_add_iit_phase2_user_project_rbac` | user_mappings 加 user_id FK + projects 加 tenant_id FK + UserRole 加 IIT_OPERATOR | ADD COLUMN + ADD CONSTRAINT + ALTER TYPE |
| 3 | `20260228_add_iit_project_is_demo` | projects 加 is_demo 标记 | ADD COLUMN |
| 4 | `20260301_add_v31_qc_field_status_and_instance_columns` | **新建 qc_field_status 五级坐标表** + qc_logs/equery 加 instance_id + field_mapping 加 3 列 | CREATE TABLE + ADD COLUMN |
| 5 | `20260301_add_v31_qc_event_status_and_record_summary_aggregation` | **新建 qc_event_status 事件聚合表** + record_summary 加 13 列 | CREATE TABLE + ADD COLUMN |
| 6 | `20260301_add_v31_project_stats_health_score` | qc_project_stats 加健康度评分 9 列 | ADD COLUMN |
### 1.3 迁移结果
| 验证项 | 结果 |
|-------|------|
| Prisma 迁移记录 | 19 条(含 6 条新增) ✅ |
| iit_schema 表数量 | 20 → **22**(新增 qc_field_status、qc_event_status ✅ |
| 本地 vs RDS 列对比 | **442 列完全一致** ✅ |
| 已有数据完整性 | 全部向后兼容,零数据丢失 ✅ |
---
## 二、Node.js后端更新v2.3 → v2.4
### 2.1 主要变更27 项)
**IIT V3.1 QC 引擎架构全面升级**
| 类别 | 变更内容 |
|------|---------|
| 五级坐标 | RedcapAdapter normalizeInstances()、qc_field_status 五级坐标 upsert |
| D1-D7 分类 | 七维分类体系D1 入排、D2 完整性、D3 逻辑一致性、D5 时效性、D6 方案偏离、D7 安全性) |
| 统一执行器 | QcExecutor executeSingle/executeBatch 统一入口 |
| 聚合引擎 | QcAggregator field→event→record 三级冒泡 + pg-boss 防抖 |
| D2 引擎 | CompletenessEngine 绝对必填字段缺失率 |
| D6 引擎 | ProtocolDeviationEngine 访视超窗检测 |
| 健康度评分 | HealthScoreEngine D1-D7 加权评分 (0-100 + A-F 等级) |
| GCP 报表 API | D1 筛选入选表 / D2 完整性总览 / D3D4 eQuery 生命周期 / D6 方案偏离 |
| 调度器 | 项目级 cronExpression 持久化 + dispatcher 重构 |
### 2.2 镜像信息
| 项目 | 值 |
|------|---|
| ACR 仓库 | `backend-service` |
| 镜像版本 | v2.3 → **v2.4** |
| Digest | `sha256:7848b1b590c138a629fcf9036204e8a2663fc653d2347f22b2928df2874a4233` |
| 内网地址 | `http://172.17.197.32:3001` |
---
## 三、前端Nginx更新v1.9 → v2.0
### 3.1 主要变更17 项)
**IIT V3.1 前端全面升级 + GCP 报表**
| 类别 | 变更内容 |
|------|---------|
| Dashboard | 后端 healthScore + D1-D7 维度条 + 热力图 record×event 矩阵 |
| GCP 报表 | ReportsPage 重构为 5 Tab执行摘要 + D1/D2/D3D4/D6 |
| GCP 组件 | EligibilityTable / CompletenessTable / EqueryLogTable / DeviationLogTable |
| 管理端 | QcDetailDrawer 事件级详情 + RiskHeatmap 列头中文化 + 方案偏离弹窗 |
| API 客户端 | 5 个新报表接口 + V3.1 完整 TS 类型定义 |
| 旧系统集成 | "正在加载..." 替代 "正在连接旧系统..."(去除双系统感知) |
### 3.2 镜像信息
| 项目 | 值 |
|------|---|
| ACR 仓库 | `ai-clinical_frontend-nginx` |
| 镜像版本 | v1.9 → **v2.0** |
| Digest | `sha256:ad24ccde2c1cdf59c07af16a429ce6298ac42d28cd9df73276ab8b653e018d38` |
| 内网地址 | `http://172.17.197.32:80` |
---
## 四、环境变量联动更新
| 服务 | 环境变量 | 旧值 | 新值 |
|------|---------|------|------|
| frontend-nginx-service | `BACKEND_SERVICE_HOST` | `172.17.197.30` | `172.17.197.32` |
> CLB 负载均衡器由阿里云自动更新,无需手动操作。
---
## 五、当前系统配置速查
### 服务内网地址
```
R统计引擎: http://172.17.173.101:8080 (不变)
Python: http://172.17.173.102:8000 (不变)
后端: http://172.17.197.32:3001 (更新)
前端: http://172.17.197.32:80 (更新)
```
### ACR 镜像版本
| 仓库 | 版本 |
|------|-----|
| `ssa-r-statistics` | v1.0.1 |
| `python-extraction` | v1.2 |
| `backend-service` | **v2.4** |
| `ai-clinical_frontend-nginx` | **v2.0** |
### 公网访问
```
CLB: http://8.140.53.236/
域名: https://iit.xunzhengyixue.com/
```
---
> **文档版本**v1.0
> **最后更新**2026-03-02
> **维护人员**:开发团队