Prisma 模式
Prisma 模式文件是 Prisma 的主要配置文件。它通常命名为 schema.prisma
,并包含以下部分
数据源
数据源确定 Prisma 如何连接到您的数据库,并在您的 Prisma 模式文件中用 datasource
块表示。以下是用 postgresql
作为数据库并包含硬编码连接字符串的数据源示例
prisma
generator client {
provider = "dart run orm"
}
datasource db {
provider = "postgresql"
url = "postgresql://johndoe:mypassword@localhost:5432/mydb?schema=public"
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
生成器
Prisma 模式可以有一个或多个生成器,用 generator
块表示
prisma
generator client {
provider = "dart run orm"
}
datasource db {
provider = "postgresql"
url = "postgresql://johndoe:mypassword@localhost:5432/mydb?schema=public"
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
提示
关于更多生成器,请参阅 👉 生成器
Prisma Dart 客户端:dart run orm
当您决定在您的 Dart 项目中使用 Prisma 时,您需要在 generator
中将 provider
指定为 dart run orm
,以便 Prisma 可以为您生成 Dart 代码。
prisma
generator client {
provider = "dart run orm"
}
输出目录
output
:生成的 Dart 代码将写入到的目录。默认为./generated_dart_client/
。
相对路径相对于 Prisma 模式文件的目录解析。
更改输出目录
prisma
generator client {
provider = "dart run orm"
output = "../lib/src/generated/prisma_client"
}
数据模型
数据模型定义数据库表的结构。它们由 model
/view
/enum
块组成。
提示
以下部分仅作简单介绍。有关从数据模型派生的更多内容,请参阅 👉 数据模型
模型
模型在您的 Prisma 模式文件中用 model
块表示。这是一个 User
模型的示例
prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
role Role @default(USER)
}
view UserDetail {
id Int
name String?
postsCount Int
}
enum Role {
USER
ADMIN
}
视图
视图在您的 Prisma 模式文件中用 view
块表示。这是一个 UserDetail
视图的示例
prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
role Role @default(USER)
}
view UserDetail {
id Int
name String?
postsCount Int
}
enum Role {
USER
ADMIN
}
枚举
枚举在您的 Prisma 模式文件中用 enum
块表示。这是一个 Role
枚举的示例
prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
role Role @default(USER)
}
view UserDetail {
id Int
name String?
postsCount Int
}
enum Role {
USER
ADMIN
}
更多
关于更多数据源,请参阅 👉 Prisma 数据源 官方文档。