Приложение ошибки южной миграции "недоступно в этой миграции" - PullRequest
7 голосов
/ 09 июня 2009

Эта проблема в основном та же, что и в предыдущем вопросе. здесь .

Однако, ответ там не работает для меня. Я установил южную магистральную версию, вручную ввел строку импорта в соответствующем файле миграции, выполнил полную «начальную миграцию» в отдельном каталоге и исследовал файл 0001_initial.py.

У меня есть проект Django с несколькими приложениями, одно из которых (называемое «ядро») упоминается другими. Южная миграция пытается создать новую таблицу со столбцом, имеющим внешний ключ к модели в ядре.

В настоящее время я импортирую ядро ​​в рассматриваемой миграции (0006) и даже добавил ее в миграцию 0001, хотя, похоже, это не имеет значения.

Прежде чем я сделаю что-то радикальное, например, удалив это поле, запустив миграцию и добавив поле вручную, есть ли известный ручной обходной путь для устранения этой южной проблемы?

Ответы [ 3 ]

11 голосов
/ 24 июня 2009

Вы, вероятно, не использовали опцию --freeze, например:

python manage.py startmigration <appname> migrate_core --freeze core
2 голосов
/ 04 июля 2009

Создав миграцию так:

. / Manage.py имя начального приложения для интеграции --model NewModel

Эта ошибка возникает: «Модель« программа »из приложения« ядро ​​»недоступна в этой миграции.»

Воссоздание миграции, как это исправляет:

. / Managepy startmigration имя приложения --model NewModel --freeze core.Program

Просто "--freeze core" не помогло мне.

1 голос
/ 02 июля 2015

Вы можете получить эту ошибку, пытаясь получить доступ к классу, который находится в другом приложении django. Убедитесь, что класс, к которому вы пытаетесь обратиться, находится в словаре models.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...