generatorГенератор клиента на основе схемы.
provider — провайдер генератора (единственным доступным на сегодняшний день провайдером является
prisma-client-js);binaryTargets — определяет операционную систему для клиента Prisma. Значением по умолчанию является native, но
иногда это приходится указывать явно, например, при использовании клиента в Docker-контейнере (в этом случае также
приходится явно выполнять prisma generate).generator client {
provider = "prisma-client-js"
binaryTargets = ["native"]
}
datasourceИсточник данных.
provider — название провайдера для доступа к БД: sqlite, postgresql, mysql, sqlserver или mongodb (по
умолчанию — postgresql);url — адрес БД (по умолчанию — значение переменной DATABASE_URL);shadowDatabaseUrl — адрес “теневой” БД (для БД, предоставляемых облачными провайдерами): используется для миграций
для разработки (prisma migrate dev).datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
}
modelОпределим в схеме модели для пользователя (User) и поста (Post):
model User {
id String @id @default(uuid()) @db.Uuid
email String @unique
hash String @map("password_hash")
first_name String?
last_name String?
age Int?
role Role @default(USER)
posts Post[]
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("users")
}
model Post {
id String @id @default(uuid())
title String
content String
published Boolean
author_id String
author User @relation(fields: [author_id], references: [id])
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("posts")
}
enum Role {
USER
ADMIN
}
enumПеречисление.
enum Role {
USER
ADMIN
}