Files
AIclinicalresearch/docs/01-平台基础层/07-数据库/01-Prisma迁移历史与变更日志.md
HaHafeng 0b29fe88b5 feat(iit): QC deep fix + V3.1 architecture plan + project member management
QC System Deep Fix:
- HardRuleEngine: add null tolerance + field availability pre-check (skipped status)
- SkillRunner: baseline data merge for follow-up events + field availability check
- QcReportService: record-level pass rate calculation + accurate LLM XML report
- iitBatchController: legacy log cleanup (eventId=null) + upsert RecordSummary
- seed-iit-qc-rules: null/empty string tolerance + applicableEvents config

V3.1 Architecture Design (docs only, no code changes):
- QC engine V3.1 plan: 5-level data structure (CDISC ODM) + D1-D7 dimensions
- Three-batch implementation strategy (A: foundation, B: bubbling, C: new engines)
- Architecture team review: 4 whitepapers reviewed + feedback doc + 4 critical suggestions
- CRA Agent strategy roadmap + CRA 4-tool explanation doc for clinical experts

Project Member Management:
- Cross-tenant member search and assignment (remove tenant restriction)
- IIT project detail page enhancement with tabbed layout (KB + members)
- IitProjectContext for business-side project selection
- System-KB route access control adjustment for project operators

Frontend:
- AdminLayout sidebar menu restructure
- IitLayout with project context provider
- IitMemberManagePage new component
- Business-side pages adapt to project context

Prisma:
- 2 new migrations (user-project RBAC + is_demo flag)
- Schema updates for project member management

Made-with: Cursor
2026-03-01 15:27:05 +08:00

189 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Prisma 迁移历史与变更日志
> 版本: v1.0
> 更新日期: 2026-02-27
> 维护说明: 每次新增迁移后,在此文档追加记录
---
## 1. 迁移时间线总览
当前共 **15 个已应用迁移**,覆盖 2025-10 至 2026-02 的演进过程。
```
2025-10 ████ init + conversations + batch + review_tasks
2025-12 █ column_mapping
2026-01 █ system_knowledge_base
2026-02 ████████ IIT agent + CRA QC + SSA module + DeepResearch V2
+ extraction template + db push drift patch
+ eQuery/critical events + type alignment
```
---
## 2. 完整迁移清单
### #1 — 20251010075003_init
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-26 08:17:06 |
| 影响 Schema | public, platform_schema, aia_schema, pkb_schema, dc_schema, iit_schema, asl_schema, ekb_schema, agent_schema |
| 核心内容 | 系统初始化,创建全部 schema + 核心表users, tenants, conversations, knowledge_bases, documents, screening_projects, literatures, agent_definitions 等) |
| 说明 | 全量初始化迁移,包含 pgvector 和 pg_bigm 扩展安装 |
### #2 — 20251010122727_add_conversation_metadata_deleted_at
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-26 08:17:14 |
| 影响 Schema | iit_schema |
| 核心内容 | conversation_history 表增加 metadata(JSONB) 和 deleted_at(TIMESTAMP) 列 |
### #3 — 20251012124747_add_batch_processing_module
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-26 08:17:16 |
| 影响 Schema | pkb_schema |
| 核心内容 | 新增 batch_tasks 和 batch_results 表,支持批处理功能 |
### #4 — 20251014120128_add_review_tasks
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-26 08:17:17 |
| 影响 Schema | rvw_schema |
| 核心内容 | 创建 rvw_schema 和 review_tasks 表 |
### #5 — 20251208_add_column_mapping
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-26 08:17:19 |
| 影响 Schema | dc_schema |
| 核心内容 | dc_extraction_tasks 表增加 column_mapping(JSONB) 列 |
### #6 — 20260128_add_system_knowledge_base
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-01-28 12:36:17 |
| 影响 Schema | capability_schema |
| 核心内容 | 创建 system_knowledge_bases 和 system_kb_documents 表,支持系统级知识库管理 |
### #7 — 20260207112544_add_iit_manager_agent_tables
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-07 03:26:29 |
| 影响 Schema | iit_schema |
| 核心内容 | IIT Manager Agent V2.x 表结构record_summary, weekly_reports, project_memory, agent_trace, skills, pii_audit_log, qc_project_stats 等 |
### #8 — 20260208134925_add_cra_qc_engine_support
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-08 05:49:47 |
| 影响 Schema | iit_schema |
| 核心内容 | CRA 质控引擎支持qc_logs, qc_reports, form_templates 表 + projects 表增加质控相关列 |
### #9 — 20260219_add_ssa_module
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-19 06:21:29 |
| 影响 Schema | ssa_schema |
| 核心内容 | 创建 ssa_schema 及 9 张表ssa_sessions, ssa_messages, ssa_execution_logs, ssa_tools_library, ssa_r_code_library, ssa_decision_table, ssa_guardrail_config, ssa_param_mapping, ssa_interpretation_templates |
### #10 — 20260223_add_deep_research_v2_fields
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-23 01:44:19 |
| 影响 Schema | asl_schema |
| 核心内容 | research_tasks 表增加 6 列target_sources, confirmed_requirement, ai_intent_summary, execution_logs, synthesis_report, result_list |
| ⚠️ 注意 | 此迁移依赖 research_tasks 表(由 prisma db push 创建Shadow DB 重放会失败 |
### #11 — 20260225_add_extraction_template_engine
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-25 00:07:57 |
| 影响 Schema | asl_schema |
| 核心内容 | 全文提取模板引擎extraction_templates, extraction_project_templates, extraction_tasks, extraction_results 4 张表 |
### #12 — 20260227_patch_db_push_drift
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-27 01:11:55 |
| 影响 Schema | iit_schema, ssa_schema, rvw_schema |
| 核心内容 | 补丁迁移,覆盖 prisma db push 创建的结构field_metadata, qc_logs, qc_reports, form_templatesiit, ssa_workflows, ssa_workflow_stepsssa, review_tasks 新增 8 列 + 1 索引rvw |
| 性质 | 使用 `CREATE TABLE IF NOT EXISTS``ADD COLUMN IF NOT EXISTS` 保证幂等 |
### #13 — 20260226_add_equery_critical_events_cron
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-27 01:12:08 |
| 影响 Schema | iit_schema |
| 核心内容 | eQuery 电子质疑表 + critical_events 重大事件表 + projects 增加 cron_enabled/cron_expression 列 |
| 特殊类型 | id 使用 PostgreSQL 原生 UUID时间戳使用 TIMESTAMPTZ |
### #14 — 20260227_align_schema_with_db_types
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-27 05:44:11 |
| 影响 Schema | ssa_schema |
| 核心内容 | 对齐 Schema 类型注解与数据库实际类型ssa_workflows/ssa_workflow_steps 的 VARCHAR 长度和 TIMESTAMP 精度 + 清理 2 个重复外键 |
| 性质 | Schema 精度对齐SQL 对实际数据库为幂等操作 |
### #15 — 20260228_add_iit_phase2_user_project_rbac
| 属性 | 值 |
|------|-----|
| 应用时间 | 2026-02-28 12:17:00 |
| 影响 Schema | iit_schema, platform_schema |
| 核心内容 | Phase 2 用户-项目关联 + RBACuser_mappings 增加 user_idFK → platform_schema.usersprojects 增加 tenant_idFK → platform_schema.tenantsUserRole 枚举增加 IIT_OPERATOR |
| 创建方式 | 手动创建 + `prisma migrate resolve --applied`(降级方案) |
---
## 3. 迁移创建方式说明
| 方式 | 适用场景 | 涉及迁移 |
|------|---------|---------|
| `prisma migrate dev` | 标准开发流程 | #1 ~ #9 |
| `prisma migrate dev --create-only` | 仅生成不执行 | — |
| 手动创建 + `prisma migrate resolve --applied` | Shadow DB 无法重放时 | #12, #13, #14, #15 |
| `prisma db push` (⚠️ 非标准) | 快速原型,不产生迁移记录 | 造成了 drift patch 的必要性 |
---
## 4. 维护规则
### 新增迁移时,在本文档追加:
```markdown
### #N — YYYYMMDD_migration_name
| 属性 | 值 |
|------|-----|
| 应用时间 | YYYY-MM-DD HH:MM:SS |
| 影响 Schema | xxx_schema |
| 核心内容 | 简述变更 |
```
### 检查迁移状态:
```bash
# 查看本地已应用迁移
docker exec ai-clinical-postgres psql -U postgres -d ai_clinical_research \
-c "SELECT migration_name, finished_at FROM _prisma_migrations ORDER BY started_at;"
# 查看 RDS 已应用迁移
npx prisma migrate status
```