Prisma 中文文档 下载 App

写第一个 schema.prisma:datasource、generator、model

schema.prisma 三件套

初始化完成后,打开 prisma/schema.prisma,你会看到一个空白模板。一份完整的 Prisma Schema 由三个部分组成:

  1. datasource — 告诉 Prisma 连哪个数据库、用什么 provider
  2. generator — 告诉 Prisma 生成什么(通常是 Prisma Client)
  3. model — 定义你的数据模型(对应数据库里的表或集合)

完整示例

下面写一个简单的博客场景作为示例:用户(User)和文章(Post)。用户可以发表多篇文章,每篇文章属于一个用户。

// prisma/schema.prisma

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

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

model Post {
  id          Int      @id @default(autoincrement())
  title       String
  content     String?
  published   Boolean  @default(false)
  createdAt   DateTime @default(now())
  updatedAt   DateTime @updatedAt
  author      User?    @relation(fields: [authorId], references: [id])
  authorId    Int?
}

逐段解释

datasource

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator

generator client {
  provider = "prisma-client-js"
}

model User

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

model Post

model Post {
  author   User? @relation(fields: [authorId], references: [id])
  authorId Int?
}

下一步

Schema 写好后,你需要执行 生成 Client 的 prisma generate 来生成 Prisma Client,然后就能在代码里用类型安全的查询 API 了。