Ошибка Django South: "нет совместимого приложения, соответствующего" myapp ""

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

"python manage.py schemamigration myapp --initial"

Я получаю сообщение об ошибке

"There is no enabled application matching 'myapp'"

- Вещи, которые я пробовал -

Я проверил мой файл настроек, выполнив команду Import South из оболочки django, и никаких ошибок не было, и я добавил папку manage.py, содержащую папку PYTHONPATH, а также wsgi.py и settings.py.

Я запустил python manage.py и python Варианты C:\path\to\manage.py, даже вошли в мой каталог python и подтвердили, что юг находится в папке сайтов-пакетов. syncdb работает отлично, заканчивая "не синхронизированным (использование миграции)". python manage.py выполняет миграцию, не возвращая ошибки, но в противном случае, похоже, не имеет никакого эффекта. Я попытался запустить указанную команду до и после запуска syncdb, что не влияет на результат.

- Другая потенциально важная информация -

Django 1.5.1, Python 2.7, другие внешние приложения не используются, Windows 7 64 бит, питон добавлен в путь к окну, юг установлен через команду установки python setup.py. Установка завершена успешно. Я не использую virtualenv, и я бы предпочел избежать этого, поскольку это означало бы много рефакторинга этой текущей настройки проекта и потраченного впустую времени. Я планирую перейти к настройке virtualenv в будущем, но не сейчас.

Что происходит? Как это исправить? Чистые поиски не показали никакой хорошей информации вообще, я полностью в недоумении...

Ответы

Ответ 1

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

./manage.py migrate - это ярлык, который запускает миграцию для всех приложений

Ответ 2

Эта ошибка может вводить в заблуждение: она не возникает, когда юг пытается импортировать приложение, но когда он пытается получить модуль приложения models.

  • возможно, он не может импортировать приложение (потому что вы не добавили его имя в INSTALLED_APPS)
  • возможно, он не может импортировать модуль models, потому что файл models.py не существует или потому, что каталог models/ не содержит __init__.py.

Юг не импортирует сам модуль models. Вместо этого он оставляет это задание django.db.models.get_app('app_of_interest'), которое в соответствии с его docstring "Возвращает модуль, содержащий модели для данного app_label". Сообщение об ошибке, поднятое get_app, по сути, отличается в зависимости от того, не удалось ли импортировать приложение или модель, но оба исключения: ImproperlyConfigured, а schemamigrations script не выглядит глубже, чем что.

Поскольку Юг говорит, что он принимает только обновления безопасности (он вступил в конце срока службы с помощью функции переноса Django 1.7), я не отправляю исправление на его кодовую базу, но вместо этого документирую проблему здесь.

Ответ 3

Проверьте, включено ли имя приложения в INSTALLED_APPS в settings.py