2009-06-09 2 views
7

Эта проблема в основном такая же, как в предыдущем вопросе here.Приложение для миграции южной миграции «недоступно в этой миграции»

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

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

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

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

+0

Ну, я закончил делать это вручную. Недавно мне пришлось добавить новую модель, и я получаю ту же проблему. Итак, любые решения? Или я могу переключиться на Django Evolution или просто отказаться от использования SQL? – ShawnMilo

ответ

11

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

python manage.py startmigration <appname> migrate_core --freeze core 
2

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

./manage.py startmygration APPNAME --model NewModel

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

Воссоздание миграции, как это фиксирует это:

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

Просто делать "--freeze ядро" не сделал трюк для меня ,

1

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

Смежные вопросы