Для базы данных mysql (схема ранее поддерживалась из sqlalchemy orm) я сгенерировал модели django с помощью команды управления inspectdb
.
Модели работают нормально, например, с отношениями, используемыми из представлений администратора. Это означает, что я могу выбрать связанные модели для полей формы внешнего ключа.
Первоначальная миграция, выполненная с помощью makemigrations
, выглядит нормально, но поля внешнего ключа отсутствуют.
Модели в этой точкевсе еще есть мета класс установки managed=False
. После изменения managed
на True
миграция хочет создать поля внешнего ключа. Даже если db_column задан явно (и, конечно, эти поля существуют).
Это может выглядеть примерно так.
class SomeThing(models.Model):
name = models.CharField(max_length=128, blank=True, null=True)
mandant = models.ForeignKey(
'Owner', models.CASCADE, db_column='owner_id'
)
При применении миграции происходит ошибка, поскольку полеуже существует.
Как лучше всего справиться с этой ситуацией? Почему django не получает поля внешнего ключа на первом шаге inspectdb
? Есть ли способ подсказать системе миграции, что поле уже закрыто?