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Удаляет и пересоздаёт БД, применяя все миграции с нуля. Только для разработки.
Структура папки migrations
Заголовок раздела «Структура папки migrations»prisma/migrations/├── 20240115120000_init/│ └── migration.sql├── 20240116090000_add_email_to_user/│ └── migration.sql└── 20240117150000_create_posts_table/ └── migration.sqlТаблица _prisma_migrations
Заголовок раздела «Таблица _prisma_migrations»Prisma хранит историю применённых миграций в специальной таблице _prisma_migrations. Это позволяет отслеживать какие миграции уже применены, а какие ещё нет.
Ручные миграции
Заголовок раздела «Ручные миграции»Иногда нужно добавить в миграцию кастомный SQL, который Prisma не может сгенерировать автоматически (например, наполнение данными или создание триггеров). Для этого просто отредактируйте файл миграции до её применения.