数据库技术债务追踪
版本: v1.0
更新日期: 2026-02-27
维护说明: 发现新债务时立即记录,修复后标记状态
1. 债务总览
| 状态 |
数量 |
| 🔴 待修复 |
2 |
| 🟡 已缓解(带 workaround) |
2 |
| 🟢 已修复 |
2 |
2. 当前债务清单
TD-001: Shadow DB 重放失败(prisma migrate dev 不可用)
| 属性 |
值 |
| 状态 |
🔴 待修复 |
| 发现日期 |
2026-02-27 |
| 影响范围 |
本地开发环境 |
| 严重程度 |
中 — 不影响部署(prisma migrate deploy 不使用 Shadow DB) |
| 根因 |
迁移 #10 (20260223_add_deep_research_v2_fields) 对 asl_schema.research_tasks 执行 ALTER TABLE,但该表由 prisma db push 创建,无对应迁移记录。Shadow DB 重放到 #10 时找不到表 |
| 当前影响 |
无法使用 prisma migrate dev 生成新迁移,需手动创建 + prisma migrate resolve |
| 修复方案 |
在 #10 之前插入补全迁移,创建 research_tasks 及其他 prisma db push 表。需同时更新 _prisma_migrations 表的记录顺序 |
| 修复难度 |
高 — 需仔细梳理所有 db push 创建的表,确保不遗漏 |
TD-002: equery / critical_events 使用非标准 ID 类型
| 属性 |
值 |
| 状态 |
🟡 已缓解 |
| 发现日期 |
2026-02-27 |
| 影响范围 |
iit_schema |
| 严重程度 |
低 — 不影响功能,仅类型不统一 |
| 根因 |
迁移 #13 使用 PostgreSQL 原生 UUID 类型和 TIMESTAMPTZ,而系统其他表统一使用 TEXT + TIMESTAMP(3) |
| Workaround |
Schema 中已添加 @db.Uuid 和 @db.Timestamptz(6) 注解对齐,并标注 // TODO: Tech Debt |
| 最终修复 |
未来大版本重构时统一 ID 策略(全部 TEXT 或全部 UUID) |
TD-003: ssa_workflows / ssa_workflow_steps 类型精度不一致
| 属性 |
值 |
| 状态 |
🟢 已修复 |
| 发现日期 |
2026-02-27 |
| 修复日期 |
2026-02-27 |
| 修复方式 |
迁移 #14 (20260227_align_schema_with_db_types) 对齐了 VARCHAR 长度和 TIMESTAMP 精度,清理了 2 个重复 FK |
TD-004: Prisma diff 引擎的 vector 类型噪音
| 属性 |
值 |
| 状态 |
🟡 已缓解 |
| 发现日期 |
2026-02-27 |
| 影响范围 |
ekb_schema, iit_schema, ssa_schema |
| 严重程度 |
低 — 纯噪音,不影响任何功能 |
| 根因 |
Prisma 的 Unsupported("vector(1024)") 类型无法被 diff 引擎正确比较,每次 diff 都会输出 3 条 ALTER COLUMN SET DATA TYPE 假变更 |
| Workaround |
已知噪音,运行 diff 时忽略 vector 相关行 |
| 最终修复 |
等待 Prisma 原生支持 pgvector 类型 |
TD-005: prisma db push 历史遗留
| 属性 |
值 |
| 状态 |
🟢 已修复 |
| 发现日期 |
2026-02-27 |
| 修复日期 |
2026-02-27 |
| 影响范围 |
iit_schema, ssa_schema, rvw_schema |
| 修复方式 |
迁移 #12 (20260227_patch_db_push_drift) 使用 CREATE TABLE IF NOT EXISTS 和 ADD COLUMN IF NOT EXISTS 将所有 db push 创建的结构纳入迁移体系 |
TD-006: public schema 遗留表
| 属性 |
值 |
| 状态 |
🔴 待修复 |
| 发现日期 |
2026-02-27 |
| 影响范围 |
public schema |
| 严重程度 |
极低 — 不影响任何功能 |
| 根因 |
public.users 和 public.admin_logs 是系统早期创建的遗留表,在引入 multi-schema 后已被 platform_schema.users 和 admin_schema.admin_operation_logs 替代 |
| 修复方案 |
确认无引用后安全删除遗留表 |
| 修复难度 |
低 |
3. 债务产生根因分析
4. 预防措施
| 措施 |
对应规范 |
禁止 在开发中使用 prisma db push(仅限原型探索) |
docs/04-开发规范/09-数据库开发规范.md |
所有 Schema 变更必须通过 prisma migrate dev |
同上 |
| 新增迁移后立即更新迁移日志 |
docs/01-平台基础层/07-数据库/01-Prisma迁移历史与变更日志.md |
| 部署前对比环境差异 |
docs/01-平台基础层/07-数据库/02-环境状态对照表.md |
5. 更新日志
| 日期 |
操作人 |
变更 |
| 2026-02-27 |
AI 助手 |
初始化文档,记录 6 项技术债务 |