全书目录

第二十二篇:Prisma 完全指南 —— 数据翻译官事务所宇宙

第三章:Schema —— 事务所总章程

1 分钟 296 字 第 402 / 962 个阅读单元

如果说 Prisma 是一家数据翻译官事务所,那么 schema.prisma 就是这家事务所的总章程。

它至少关心三件事:

  • 数据源是谁:datasource
  • 要生成什么:generator
  • 业务世界里有哪些档案模板:model

先看一个最小但完整的心智骨架:

prisma
datasource db {
  provider = "postgresql"
}

generator client {
  provider = "prisma-client"
  output   = "../src/generated/prisma"
}

model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  name      String?
  posts     Post[]
  createdAt DateTime @default(now())
}

model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  published Boolean  @default(false)
  authorId  Int
  author    User     @relation(fields: [authorId], references: [id])
  createdAt DateTime @default(now())
}
#这段 schema 在表达什么
text
事务所章程
│
├── datasource:我们服务哪家档案馆
├── generator:要培养出哪类翻译官
└── models:城市里有哪些档案模板
#你需要建立的 schema 心智

Schema 不是“为了让 Prisma 开心而写的配置”。

它是:

  • 数据模型的声明式描述
  • 应用代码与数据库结构的中间契约
  • 生成 Client 和生成 migration 的出发点

所以 Prisma 的第一原则不是“先写 SQL”,而是:

先把数据世界描述清楚。