Ответ
Миграции в Django — это система контроля версий для схемы вашей базы данных. Они позволяют эволюционно изменять структуру БД (таблицы, поля, индексы) в соответствии с изменениями в файлах models.py, сохраняя историю этих изменений в виде Python-файлов.
Основные преимущества:
- Автоматизация: Избавляют от необходимости писать SQL-запросы (
ALTER TABLE,CREATE TABLE) вручную. - Версионирование: Файлы миграций можно и нужно добавлять в систему контроля версий (например, Git), что позволяет всем разработчикам в команде иметь одинаковую структуру БД.
- Надежное развертывание: Упрощают обновление схемы БД на production-серверах, делая процесс предсказуемым и повторяемым.
- Возможность отката: Позволяют откатить изменения в схеме до предыдущей версии.
Основной процесс работы:
- Вы вносите изменения в модель (например, добавляете новое поле).
- Выполняете команду для создания файла миграции.
- Применяете миграцию к базе данных.
# 1. После изменения models.py, создаем файл миграции
python manage.py makemigrations
# 2. Применяем сгенерированную миграцию к базе данных
python manage.py migrate
Каждый файл миграции — это Python-скрипт, который точно описывает, какие изменения нужно внести в схему БД.