No Changes Detected: ошибка миграции в Django


Ситуация: ты пытаешься выполнить миграции в Django. Но появляется ошибка «no changes detected» и ничего не происходит. Как исправить ошибку и провести миграцию?

No Changes Detected: ошибка миграции в Django

Как правило, эта ошибка возникает после попытки «перекроить» базу данных. Например, ты решил, что имеющаяся база данных, ее структура требует изменений. Скажем, нужно убрать лишние поля. Быстрый и простой способ — полностью «перекомпоновать», пересоздать базу данных.

Для этого удаляется база данных и файлы миграции. Соответственно, это «костыльный» способ. Так как при этом удаляются все записи. На этапе разработки сайта или учебного проекта это возможно. На реальном сайте маловероятно — так как удаляется весь контент.

👉 При удалении файлов миграции можно допустить ошибку — удалить файл «__init__.py«. Дело в том, что для Django папка «migrations» воспринимается как приложение. И файл «__init__.py» является обязательным. Без него и возникает ошибка «no changes detected».

No Changes Detected: ошибка миграции в Django

Проверяем, есть ли на месте этот файл. Если нет, то просто создаем его. Заметь — в названии используются двойные нижние подчеркивания. Сам файл оставляем пустым.

📢 Другие причины ошибки no changes detected

Твое приложение обязательно должно быть добавлено в INSTALLED_APPS файла «settings.py»:

Также проверяем наличие файла «__init__.py» в папке твоего приложения (где у тебя лежит файл «views.py» с представлениями, статические фалы и сама папка «migrations»).

В файле «models.py» классы должны наследоваться от «django.db.models.Model». В «models.py» должен быть соответствующий импорт, а в самом классе соответствующая запись в круглых скобках.

Проверяем, нет ли семантических ошибок в «models.py».

Также возможны ошибки при настройках Git. В частности в файле «.gitignore».


Поделиться в соц сетях

Подписаться
Уведомить о
0 комментариев
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии

Есть идеи, замечания, предложения? Воспользуйтесь формой Обратная связь или отправьте сообщение по адресу replay@sciencestory.ru
© 2017 Истории науки. Информация на сайте опубликована в ознакомительных целях может иметь ограничение 18+