Миграции не создаются, ошибка dependencies references nonexistent parent node
20 апреля 2015 г. 4:02
Иногда у меня не создаются миграции. Обычно нужно сделать так: для того чтобы создавались миграции, в нужном приложении необходимо создать папку migrations
(и положить туда __init__.py
). И не забыть прописать приложение в settings.py. И тогда при вызове команды python manage.py makemigrations
создадутся миграции.
Но что делать, когда возникает ошибка dependencies references nonexistent parent node
? Подробнее на примере.
У меня возникла эта ошибка, когда я поставил taggit (приложение, позволяющее прикручивать теги к объектам) и по-инерции прописал в settings.py следующее:
MIGRATION_MODULES = { 'cms': 'cms.migrations_django', 'menus': 'menus.migrations_django', 'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations_django', 'taggit': 'taggit.south_migrations', }
Как написано в документации Django по миграциям: "запишите в MIGRATION_MODULES
названия приложений, которые используют не дефолтную папку migrations для хранения Django миграций (версии 1.7 и выше), и название папки, куда буду складываться миграции".
Мельком посмотрел в документации taggit, что тоже используют MIGRATION_MODULES
. После вызова команды python manage.py migrate
всё работало как надо до тех пор, пока мои миграции не стали зависимы от миграции taggit 0001_initial.py.
Тут-то и вывалилась ошибка dependencies references nonexistent parent node
. Оказывается, у меня вообще Django не использовал taggit миграции, а просто создал таблицы в БД (как приложение без миграций) и соответственно не было записи в таблице django_migrations о том, что применилась миграция 0001_initial.py приложения taggit.
Как выяснилось, проблема в том, что не надо было добавлять строчку 'taggit': 'taggit.south_migrations'
в MIGRATION_MODULES
, так как это была папка с миграциями старой Django (версии ниже, чем 1.7) приложения south. Потом ещё и обратил внимание на то, что в названии 'taggit.south_migrations'
стоит ключевое слово south :)
Поэтому будьте внимательны: в MIGRATION_MODULES
прописывается путь до миграций django 1.7 и выше.
И напоследок скажу: миграции сильно облегчают жизнь - дружите с ними :)
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0