Как создать и откатить миграции базы данных в Django

Ответ

Управление миграциями в 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