cheatsheets

Схема

generator

Генератор клиента на основе схемы.

generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["native"]
}

datasource

Источник данных.

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
}