Я создал приложение Django, и у меня есть такая модель:
class Company(models.Model):
name = models.TextField(max_length = 200)
Когда я запускаю python3 manage.py makemigrations appname
, все работает, как ожидалось, и создается файл миграции для класса .
Проблема возникает, если класс в модели также определяет класс Meta
:
class Company(models.Model):
name = models.TextField(max_length = 200)
class Meta:
app_label = "Companies"
Теперь, если я запускаю команду makemigrations
, я либо получаю " никаких изменений не обнаружено », и файл миграции не создается:
> python3 manage.py makemigrations myApp
No changes detected in app 'appname'
Или, что еще хуже, если модель с классом Meta
не имеет зависимостей (внешних ключей), создается миграция, которая будет полностью удалить модель / таблицу.
Или, если есть зависимость (ссылка на внешний ключ из другой модели), я получаю такую ошибку:
matcher.OtherTable.foreignkeyref: (fields.E300) Field defines a relation with model 'Company', which is either not installed, or is abstract.
Все модели с * Определенный класс 1021 * по какой-то причине не будет генерировать миграцию, ни первоначальную, ни последующую. Классы, для которых мета добавлена постфактум, будут удалены при следующей миграции. Становится так, как будто их вообще нет.
Я использую Python 3.8.3 и Django 3.0.6 на Ma c OS 10.15.5.