2026年3月2日部署完成总结
部署日期:2026-03-02
部署范围:数据库迁移(6个) + Node.js后端 + 前端Nginx 全量更新
部署状态:✅ 全部完成
文档日期:2026-03-02
部署成果一览
服务版本对比
| 服务 |
部署前 |
部署后 |
变更类型 |
| PostgreSQL(RDS) |
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 负载均衡器由阿里云自动更新,无需手动操作。
五、当前系统配置速查
服务内网地址
ACR 镜像版本
| 仓库 |
版本 |
ssa-r-statistics |
v1.0.1 |
python-extraction |
v1.2 |
backend-service |
v2.4 |
ai-clinical_frontend-nginx |
v2.0 |
公网访问
文档版本:v1.0
最后更新:2026-03-02
维护人员:开发团队