把整篇压缩成一张图:
软件城市:数据翻译官事务所宇宙
┌───────────────────────────────────────────────────────────────┐
│ 业务需求变化 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────┐
│ schema.prisma │
└───────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ datasource │ │ generator │ │ models │
│ 连接哪家库 │ │ 生成什么客户端 │ │ 数据模板与关系 │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ relations │
│ 档案挂接规则 │
└──────────────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ prisma generate │ │ prisma migrate │
│ 培训翻译官 │ │ 生成施工变更单 │
└─────────────────┘ └──────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Prisma Client │ │ migration SQL │
│ 类型安全查询入口 │ │ 数据库结构演化历史 │
└─────────────────┘ └──────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 服务端业务代码 │
│ │
│ findMany / findUnique / create / update / upsert / delete │
│ include / select / connect / nested writes / transaction │
│ $queryRaw / $executeRaw │
└───────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────┐
│ 数据库 │
│ PostgreSQL/... │
└─────────────────┘再压成一句总口诀:
Schema 负责描述世界,
Migration 负责演化世界,
Prisma Client 负责安全地访问世界。