Skip to content

Руководство по Prisma (Разработка и Продакшн)

Рабочий процесс разработки

Ежедневные операции

Terminal window
# Получить последние изменения
git pull
# Синхронизировать с базой данных
npx prisma db pull
# Сгенерировать клиент
npx prisma generate

Изменения схемы

Terminal window
# После изменения schema.prisma
npx prisma migrate dev --name описание_изменений
# Проверка через GUI
npx prisma studio

Сброс базы данных (только для разработки)

Terminal window
# Удаляет все данные и применяет миграции заново
npx prisma migrate reset

Тестовые данные

Terminal window
# Заполнить базу данных тестовыми данными
npx prisma db seed

Операции в продакшене

Применение миграций

Terminal window
# ТОЛЬКО для продакшена - применяет существующие миграции
npx prisma migrate deploy

Проверка статуса

Terminal window
# Проверить статус миграций
npx prisma migrate status

Управление схемой

Валидация схемы

Terminal window
# Форматирование schema.prisma
npx prisma format
# Валидация схемы
npx prisma validate

Синхронизация с базой данных

Terminal window
# Получить текущую схему из базы данных
npx prisma db pull
# Отправить схему в базу данных (только для разработки!)
npx prisma db push

Командная работа

Обработка новых изменений

Terminal window
git pull
npx prisma generate

Создание изменений

Terminal window
# 1. Создать ветку
git checkout -b feature/name
# 2. Изменить schema.prisma
# 3. Создать миграцию
npx prisma migrate dev --name описание
# 4. Закоммитить ВСЕ файлы
git add prisma/schema.prisma
git add prisma/migrations/*
git commit -m "feat: описание"

Важные правила

Ограничения для продакшена

❌ Никогда не использовать в продакшене:

  • prisma migrate dev
  • prisma migrate reset
  • prisma db push

Ограничения для разработки

❌ Никогда в разработке:

  • Удалять файлы миграций вручную
  • Модифицировать существующие миграции
  • Делать прямые изменения в базе данных

Решение проблем

Конфликты миграций

Terminal window
# 1. Сохранить изменения
git stash
# 2. Получить последние изменения
git pull
# 3. Сбросить базу данных
npx prisma migrate reset
# 4. Восстановить изменения
git stash pop
# 5. Создать новую миграцию
npx prisma migrate dev

Рассинхронизация схемы

Terminal window
# Проверить текущую схему
npx prisma db pull
# Исправить различия
npx prisma migrate dev

Структура проекта

prisma/
├── schema.prisma # Основная схема
├── migrations/ # Файлы миграций
└── seed.ts # Скрипт с тестовыми данными

Переменные окружения

Разработка (.env)

DATABASE_URL="postgresql://user:password@localhost:5432/dbname"

Продакшен (.env.production)

DATABASE_URL="postgresql://prod_user:prod_pass@prod.host:5432/prod_db"

Лучшие практики

✅ Всегда:

  • Тестировать миграции в разработке перед продакшеном
  • Коммитить все файлы миграций
  • Использовать понятные имена для миграций
  • Делать резервную копию перед применением миграций в продакшене
  • Координировать крупные изменения схемы с командой