[M-AI-02-09] 将 Prisma 逻辑模型 AiAnalysisJob 重命名为 AiJob #281

Closed
opened 2026-06-19 23:30:04 +08:00 by wangdl · 1 comment
Owner

依赖

  • M-AI-02-08

目标

将 Prisma 逻辑模型统一为 AiJob,但保持现有物理表、主键、列名、外键和数据完全不变。

实现要求

使用:

model AiJob {
  ...
  @@map("<现有 AiAnalysisJob 物理表名>")
}

所有旧物理列通过必要的 @map 保持不变。

修改范围

更新内部:

  • Prisma delegate;
  • Repository;
  • Relation;
  • Type import;
  • 测试 Fixture;
  • Admin Query;
  • Worker 状态更新。

可以保留现有公开类名:

  • AiAnalysisService
  • AiAnalysisRepository
  • 现有 DTO
  • 现有 Controller 路径

本批不要求业务模块重命名。

强制验证

prisma migrate diff 必须证明逻辑重命名没有产生:

  • 物理表 rename;
  • drop/create table;
  • column rename;
  • FK 重建;
  • 数据复制。

兼容性

  • M-AI-01 基线旧版本应用仍可连接数据库;
  • 新版本 API 返回保持不变;
  • 现有 HTTP E2E 全部通过;
  • 现有 Worker Payload 不变。

非目标

  • 不重命名物理表;
  • 不重命名 API;
  • 不重命名 Queue;
  • 不迁移 AiRuntimeJob;
  • 不新增业务能力。
## 依赖 * M-AI-02-08 ## 目标 将 Prisma 逻辑模型统一为 `AiJob`,但保持现有物理表、主键、列名、外键和数据完全不变。 ## 实现要求 使用: ```prisma model AiJob { ... @@map("<现有 AiAnalysisJob 物理表名>") } ``` 所有旧物理列通过必要的 `@map` 保持不变。 ## 修改范围 更新内部: * Prisma delegate; * Repository; * Relation; * Type import; * 测试 Fixture; * Admin Query; * Worker 状态更新。 可以保留现有公开类名: * `AiAnalysisService` * `AiAnalysisRepository` * 现有 DTO * 现有 Controller 路径 本批不要求业务模块重命名。 ## 强制验证 `prisma migrate diff` 必须证明逻辑重命名没有产生: - 物理表 rename; - drop/create table; - column rename; - FK 重建; - 数据复制。 ## 兼容性 * M-AI-01 基线旧版本应用仍可连接数据库; * 新版本 API 返回保持不变; * 现有 HTTP E2E 全部通过; * 现有 Worker Payload 不变。 ## 非目标 * 不重命名物理表; * 不重命名 API; * 不重命名 Queue; * 不迁移 AiRuntimeJob; * 不新增业务能力。
wangdl added this to the M-AI-02 统一 AiJob 数据库 Expand milestone 2026-06-19 23:30:04 +08:00
wangdl added the
type:refactor
backend
prisma
compatibility
labels 2026-06-19 23:30:04 +08:00
wangdl changed title from [M-AI-02] 将 Prisma 逻辑模型 AiAnalysisJob 重命名为 AiJob to [M-AI-02-09] 将 Prisma 逻辑模型 AiAnalysisJob 重命名为 AiJob 2026-06-19 23:31:05 +08:00
Author
Owner

开发完成评论

完成内容

  • Prisma model AiAnalysisJobAiJob + @@map("AiAnalysisJob")
  • 所有 relation 类型更新:AiAnalysisResult.jobAiJobSnapshot.jobAiJobArtifact.jobAiUsageLog.jobUser.aiJobs
  • 自引用更新:AiJob.parentJob / AiJob.children
  • 源码更新:ai-analysis.repository.tsprisma.aiAnalysisJobprisma.aiJob(3 处)

强制验证

  • prisma migrate diff:无 AiAnalysisJob 表 drop/rename/alter
  • 物理表名保持 AiAnalysisJob
  • E2E 测试文件 Raw SQL 无需修改(物理表名不变)

保留未重命名(按 Issue 要求)

  • AiAnalysisService
  • AiAnalysisRepository(类名,非 Prisma delegate)
  • AiAnalysisResult 模型
  • 现有 DTO / Controller 路径

修改文件

  • prisma/schema.prismaAiAnalysisJobAiJob + @@map(1 处 model 定义 + 7 处 relation 引用)
  • src/modules/ai-analysis/ai-analysis.repository.tsprisma.aiAnalysisJobprisma.aiJob(3 处)

测试情况

  • 回归测试:303 passed

是否建议进入 Review

## 开发完成评论 ### 完成内容 - Prisma model `AiAnalysisJob` → `AiJob` + `@@map("AiAnalysisJob")` - 所有 relation 类型更新:`AiAnalysisResult.job`、`AiJobSnapshot.job`、`AiJobArtifact.job`、`AiUsageLog.job`、`User.aiJobs` - 自引用更新:`AiJob.parentJob` / `AiJob.children` - 源码更新:`ai-analysis.repository.ts` — `prisma.aiAnalysisJob` → `prisma.aiJob`(3 处) ### 强制验证 - `prisma migrate diff`:无 `AiAnalysisJob` 表 drop/rename/alter ✅ - 物理表名保持 `AiAnalysisJob` ✅ - E2E 测试文件 Raw SQL 无需修改(物理表名不变) ✅ ### 保留未重命名(按 Issue 要求) - `AiAnalysisService` - `AiAnalysisRepository`(类名,非 Prisma delegate) - `AiAnalysisResult` 模型 - 现有 DTO / Controller 路径 ### 修改文件 - `prisma/schema.prisma`:`AiAnalysisJob` → `AiJob` + `@@map`(1 处 model 定义 + 7 处 relation 引用) - `src/modules/ai-analysis/ai-analysis.repository.ts`:`prisma.aiAnalysisJob` → `prisma.aiJob`(3 处) ### 测试情况 - 回归测试:303 passed ✅ ### 是否建议进入 Review - 是
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#281
No description provided.