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

6. Миграции

Миграции — это способ версионировать изменения схемы базы данных. Prisma Migrate автоматически генерирует SQL-файлы миграций на основе изменений в schema.prisma и применяет их к базе данных.

Когда вы вносите изменения в schema.prisma, Prisma сравнивает текущее состояние схемы с последней примёнённой миграцией и генерирует SQL для перехода от одного состояния к другому.

Создание и применение миграции (разработка):

Окно терминала
npx prisma migrate dev --name add-user-email

Эта команда создаёт новый SQL-файл в prisma/migrations/, применяет его к БД и регенерирует Prisma Client.

Применение миграций в продакшене:

Окно терминала
npx prisma migrate deploy

Применяет все неприменённые миграции без интерактивных запросов. Предназначена для CI/CD пайплайнов.

Сброс базы данных (осторожно!):

Окно терминала
npx prisma migrate reset

Удаляет и пересоздаёт БД, применяя все миграции с нуля. Только для разработки.

prisma/migrations/
├── 20240115120000_init/
│ └── migration.sql
├── 20240116090000_add_email_to_user/
│ └── migration.sql
└── 20240117150000_create_posts_table/
└── migration.sql

Prisma хранит историю применённых миграций в специальной таблице _prisma_migrations. Это позволяет отслеживать какие миграции уже применены, а какие ещё нет.

Иногда нужно добавить в миграцию кастомный SQL, который Prisma не может сгенерировать автоматически (например, наполнение данными или создание триггеров). Для этого просто отредактируйте файл миграции до её применения.