Команда migrate

Команда migrate применяется для синхронизации состояния базы данных с текущим набором миграций, созданных командой makemigrations. Она выполняет все непримененные миграции в порядке их создания, а также позволяет откатывать изменения до определенного состояния. Команда работает на уровне проекта и принимает аргументы для указания конкретного приложения и цели миграции.

Синтаксис

shellpython manage.py migrate [app_name] [migration_name]

Пример

Применим все непримененные миграции для всех приложений:

shellpython manage.py migrate

Результат выполнения команды:

shellOperations to perform:
  Apply all migrations: admin, auth, contenttypes, myapp, sessions
Running migrations:
  Applying myapp.0001_initial... OK
  Applying myapp.0002_add_status_field... OK

Пример

Применим миграции только для конкретного приложения myapp:

shellpython manage.py migrate myapp

Результат выполнения команды:

shellOperations to perform:
  Apply all migrations: myapp
Running migrations:
  No migrations to apply.

Пример

Откатим миграции приложения myapp до начального состояния (удалим все таблицы приложения):

shellpython manage.py migrate myapp zero

Результат выполнения команды:

shellOperations to perform:
  Unapply all migrations: myapp
Running migrations:
  Rendering model states... DONE
  Unapplying myapp.0002_add_status_field... OK
  Unapplying myapp.0001_initial... OK

Пример

Откатим миграции до определенного состояния (указав имя миграции):

shellpython manage.py migrate myapp 0001

Результат выполнения команды:

shellOperations to perform:
  Target specific migration: 0001_initial, from myapp
Running migrations:
  Rendering model states... DONE
  Unapplying myapp.0002_add_status_field... OK

Пример

Применим миграции с указанием конкретного имени миграции (переход к определенному состоянию):

shellpython manage.py migrate myapp 0002

Результат выполнения команды:

shellOperations to perform:
  Target specific migration: 0002_add_status_field, from myapp
Running migrations:
  Rendering model states... DONE
  Applying myapp.0002_add_status_field... OK

Смотрите также

  • команда makemigrations,
    которая создает новые миграции на основе изменений в моделях
  • команда showmigrations,
    которая отображает список всех миграций и их статус
  • команда sqlmigrate,
    которая показывает SQL-запросы для указанной миграции
  • команда squashmigrations,
    которая объединяет несколько миграций в одну