Я удалил ForeignKey
из модели и думаю, что миграция не была применена должным образом. Это было три дня назад, и с тех пор были применены другие миграции.
Проблема в том, что теперь я не могу воссоздать тот же ForeignKey
, потому что Django не видит изменения в models.py
, когда я воссоздаю поле.
Каков наилучший способ решить эту проблему?
class Account(TimestampedModel):
name = models.CharField(max_length=50, null=True)
# python manage.py makemigrations
No changes detected
Когда я воссоздаю поле, оно продолжает говорить, что никаких изменений не обнаружено.
class Account(TimestampedModel):
name = models.CharField(max_length=50, null=True)
exchange = models.ForeignKey(Exchange, on_delete=models.CASCADE, related_name='account', null=True) # ForeignKey I cant recreate
# python manage.py makemigrations
No changes detected
Я пытался указать имя приложения при вызове makemigrations
, но это не помогает.
2 ответа
Наконец-то я нашел ответ на свой вопрос. Проблема была вызвана методом с тем же именем, что и поле, которое я хотел воссоздать, и с @property
. Мне пришлось удалить это свойство, чтобы выполнить миграцию.
Вы можете попробовать удалить все файлы миграции и удалить базу данных (например, файл sqlite). После этого запустите чистый sqlmigrations+migrate. Убедитесь, что в каждой папке миграции есть файл __init__.py
.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
makemigrations
, а затемmigrate --FAKED
.