16. Сиды (Seed Data)
Сидирование (seeding) — это процесс наполнения базы данных начальными данными. Prisma поддерживает официальный механизм сидирования через файл prisma/seed.ts.
Настройка seed скрипта
Заголовок раздела «Настройка seed скрипта»Добавьте скрипт в package.json:
{ "prisma": { "seed": "ts-node prisma/seed.ts" }}Установите зависимости:
npm install -D ts-nodenpm install @faker-js/faker # для генерации фейковых данныхБазовый seed файл
Заголовок раздела «Базовый seed файл»import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() { // Создать роли await prisma.user.createMany({ data: [ ], skipDuplicates: true, })}
main() .catch(console.error) .finally(() => prisma.$disconnect())Запуск сидирования
Заголовок раздела «Запуск сидирования»npx prisma db seedИспользование Faker.js
Заголовок раздела «Использование Faker.js»import { faker } from '@faker-js/faker/locale/ru'
const users = Array.from({ length: 50 }, () => ({ email: faker.internet.email(), name: faker.person.fullName(), bio: faker.lorem.sentence(),}))
await prisma.user.createMany({ data: users, skipDuplicates: true })Условное сидирование
Заголовок раздела «Условное сидирование»// Создать только если таблица пустаяconst count = await prisma.user.count()if (count === 0) { await seedUsers()}