Django makemigrations В приложении не обнаружено изменений
У меня проблемы с моей командой makemigrations.
Примечание. До сих пор я успешно выполнял миграцию, поэтому я пытаюсь выполнить этот проект не впервые.
У меня есть проект в INSTALLED_APPS.
Проблема: по какой-то причине проект перестал обнаруживать какие-либо изменения в моих моделях.
Внутри моего проекта models.py у меня есть:
from myproject.myfolder import myModel1
from myproject.myfolder import myModel2
from myproject.myfolder import myModel3
если добавить новые модели как класс myModel4 и импортировать его в models.py, и я пытаюсь
python mamange.py makemigrations environment=local
я получил No changes detected
Я знаю, что есть много постов о начальных миграциях, поэтому я даже пытаюсь
python manage.py makemigrations myproject environment=local
Я даже пытаюсь удалить все файлы в __pycache__
но это не работает для меня.
Я даже пытаюсь удалить базу данных и создать новую, и она тоже не работает.
РЕДАКТИРОВАТЬ:
Поскольку я удаляю базу данных и снова создаю ее, база данных пуста, но я все равно получаю то же сообщение.
2 ответа
Я просто столкнулся с такой проблемой. В моем случае проблема заключалась в том, что я установил через pip стабильную версию пакета, который разрабатывал, и Django импортировал стабильную версию, а не мою версию для разработки. Чтобы проверить, так ли это с вами, попробуйте добавить синтаксическую ошибку в models.py
, Если makemigrations
не вызывает синтаксическую ошибку, тогда вы будете знать, что ваша версия даже не загружается интерпретатором Python.
Если ваша модель не наследуется от модели django, вы увидите вышеупомянутую ошибку. Убедитесь, что ваша пользовательская модель наследуется от django
models.Model
, что-то вроде этого.
from django.db import models
class Posts(models.Model):
...
Удаление БД и создание новой никогда не сработает, поскольку она ссылается на предыдущие файлы миграции. Удалите все предыдущие файлы миграции и файлы pycache, кроме init. Тогда попробуйте запустить это.
python manage.py migrate --fake-initial
python manage.py makemigrations
python manage.py migrate
Это сработало для меня