Выбор ответа Junior Миграции спрашивают часто обновлено

makemigrations и migrate

Вопрос

Чем makemigrations отличается от migrate в Django?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: makemigrations создаёт файлы по моделям, migrate применяет их к базе. makemigrations сравнивает модели с состоянием, накопленным в существующих миграциях, и пишет новый файл с операциями.

Варианты ответа

  1. Это синонимы: обе команды создают и сразу применяют миграции
  2. makemigrations применяет миграции к базе, а migrate откатывает их
  3. makemigrations создаёт файлы по моделям, migrate применяет их к базеправильный ответ
  4. migrate создаёт модели по таблицам базы, а makemigrations делает наоборот

Разбор

makemigrations сравнивает модели с состоянием, накопленным в существующих миграциях, и пишет новый файл с операциями. База при этом не меняется. migrate выполняет неприменённые миграции и отмечает их в таблице django_migrations. Откат делается тем же migrate с указанием более ранней миграции. Модели по таблицам строит inspectdb.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.