Ответ
Управление миграциями в Django осуществляется через утилиту manage.py
. Основной цикл работы включает создание файлов миграций на основе изменений в моделях и их последующее применение к базе данных.
1. Создание и применение миграций
Двухэтапный процесс для обновления схемы БД:
- Создать файл миграции:
Команда анализирует изменения в файлах
models.py
и создает новый файл миграции в папкеmigrations
соответствующего приложения.python manage.py makemigrations <app_name>
- Применить миграции к БД:
Команда выполняет все еще не примененные миграции, изменяя схему базы данных в соответствии с ними.
python manage.py migrate
2. Откат миграций
Откат позволяет вернуть схему базы данных к состоянию определенной миграции.
- Откат до конкретной миграции:
Укажите имя приложения и имя файла миграции, к состоянию до которой нужно вернуться.
# Пример: откат миграции 0003_... в приложении 'myapp' # Нужно указать предыдущую миграцию - 0002 python manage.py migrate myapp 0002_some_previous_migration
- Полный откат всех миграций приложения:
Используется специальное имя миграции
zero
.python manage.py migrate myapp zero
3. Полезные команды
- Показать статус миграций:
Отображает список всех миграций и помечает примененные (
[X]
).python manage.py showmigrations
- Показать SQL-код миграции:
Генерирует SQL-запросы, которые будут выполнены для указанной миграции, без их реального применения.
python manage.py sqlmigrate myapp 0003_some_new_migration