2016-06-02 1 views
2

Я прекратил использовать стороннее приложение, которое мне больше не нужно, поэтому я удалил его из своего виртуального. Тем не менее, это приводит к тому, что все старые миграции, которые ссылаются на модели из этого приложения, не срабатывают при миграции.Удаление приложения переносит старую миграцию

from menu.models import MenuItem 
ImportError: No module named menu.models 

только два варианта я могу думать о том, чтобы или оставить приложение 3 участника установлен только для удовлетворения миграции или отредактировать старую миграцию, чтобы удалить ссылку на ныне несуществующее приложение.

Ничего не идеального. Как бы я ни думал?

+1

Вы можете попробовать 'squashmigrations', но это не всегда работает. Редактирование старых миграций, как правило, было таким, каким я должен был это сделать. (Или я просто оставил ссылку) – Sayse

+0

Да, я заметил маршрут squashmigrations. Но это не сработает в этом случае, я не думаю, потому что миграции, которые используют старую модель, фактически создают экземпляры этой модели, поэтому они не будут «раздавлены» как есть. Думаю, мне просто нужно будет отредактировать старые миграции. – bodger

+0

Да, точно, но для чего это стоит, я бы посмотрел, сколько места занимает приложение, если оно не так много, возможно, не стоит потраченного времени – Sayse

ответ

0

Согласно Джанго Миграции Historical Models документов:

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

Итак, вы должны хранить исторические приложения в своем Virtualenv, пока не удалите файлы миграции, имеющие ссылки на исторические модели. пути устранения миграции перелетных файлов являются:

  1. Squashing Migrations или
  2. Удаление файлов миграции и миграции записей в базе данных. ВНИМАНИЕ: НЕ делайте этого, если вы не уверены, что вы делаете, посмотрите на это ответы для получения дополнительной информации: How to reset migrations in Django 1.7?.
Смежные вопросы