Skip to main content

Prisma 客户端接口参考

接口参考基于下面的数据模型

model User {
id Int @id @default(autoincrement())
name String?
email String @unique
profileViews Int @default(0)
role Role @default(USER)
coinflips Boolean[]
posts Post[]
city String
country String
profile ExtendedProfile?
pets Json
}

model ExtendedProfile {
id Int @id @default(autoincrement())
userId Int? @unique
bio String?
User User? @relation(fields: [userId], references: [id])
}

model Post {
id Int @id @default(autoincrement())
title String
published Boolean @default(true)
author User @relation(fields: [authorId], references: [id])
authorId Int
comments Json
views Int @default(0)
likes Int @default(0)
}

enum Role {
USER
ADMIN
}

所有生成的类型比如 UserSelect 和 UserWhereUniqueInput 都是基于 User 模型。

PrismaClient

这部分描述 PrismaClient 的构造方法和参数

datasources

可以覆盖 schema.prisma 中的 datasource 配置。

  • 修改后要重新生成 Prisma 客户端。
  • 如果在 schema 中重命名了 datasource,替换 db 为你重命名的字段。

通过编码覆盖 url

import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient({
datasources: {
db: {
url: "file:./dev_qa.db",
},
},
});

对应

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

log

日志

参数

Option Example Description Array of log levels [ "info", "query" ] Array of log definitions [ { level: "info", emit: "event" }, { level: "warn", emit: "stdout" }]

errorFormat

定义 Prisma 返回错误

rejectOnNotFound

模型查询

findUnique