Конфликт миграций после слияния веток
Вопрос
После слияния двух веток в приложении оказались 0008_add_status и 0008_add_comment, обе зависят от 0007. Что делать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Удалить одну из миграций и её изменения
makemigrations --merge: создать миграцию-слияние, зависящую от обеихправильный ответ- Переименовать файлы вручную в
0008и0009без изменения зависимостей - Применить
migrate --fakeдля обеих
Разбор
Django видит два листа в графе миграций и отказывается мигрировать. Миграция-слияние объединяет их, если операции не конфликтуют. Если обе ещё не ушли дальше локальной ветки, можно и пересоздать одну поверх другой. Переименование файлов без правки dependencies ничего не меняет, а --fake пометит миграции применёнными без изменения схемы, и база разойдётся с кодом.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Разбить перенос данных на пачки по id
Следующий вопрос
Создание индекса на большой таблице