Перейти к содержимому

3. Prisma Schema

Файл schema.prisma — это сердце любого Prisma-проекта. Здесь описывается всё: тип базы данных, настройки генератора и все модели данных. Prisma читает этот файл и генерирует типизированный клиент, а также SQL-миграции.

Файл схемы состоит из трёх ключевых блоков:

  1. datasource — конфигурация подключения к базе данных
  2. generator — настройки генерации клиента
  3. Модели — описание таблиц и их полей
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

Поле provider определяет тип базы данных: postgresql, mysql, sqlite, sqlserver или mongodb. Поле url — строка подключения, которую лучше хранить в переменной окружения.

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

Блок generator определяет, что именно будет генерироваться при запуске prisma generate. Стандартный провайдер prisma-client-js создаёт типизированный JavaScript/TypeScript клиент.

Модели описывают таблицы базы данных. Каждая модель имеет имя (написанное в PascalCase) и набор полей с типами и атрибутами.

model User {
id Int @id @default(autoincrement())
email String @unique
name String?
createdAt DateTime @default(now())
}
  • @id — первичный ключ
  • @default(value) — значение по умолчанию
  • @unique — уникальное ограничение
  • @map("column_name") — маппинг на имя колонки в БД
  • @@index([field1, field2]) — составной индекс на уровне модели