Django 1.7 - App 'your_app_name' не имеет миграций

Я пытаюсь перейти с Django 1.6.7 на Django 1.7.1, поэтому я пытаюсь перенести свое приложение.

Я следил за django docs здесь.

Я удалил юг из установленных приложений.

В каталоге миграции я удаляю пронумерованные файлы миграции и файлы .pyc, но я сохранил каталог и файл __ init__.py.

Затем я запускаю:

python manage.py makemigrations your_app_name

Получено следующее подтверждающее сообщение:

Migrations for 'your_app_name':
  0001_initial.py:
    - Create model UserProfile

Далее я запустил:

python manage.py migrate your_app_name

Я получил следующую ошибку:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)

В соответствии с документами я также запускал:

python manage.py migrate --fake your_app_name

Я получил такое же сообщение об ошибке:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)

Может ли кто-нибудь пролить свет на то, почему это не сработает для меня?

Ответ 1

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

Если это так, первое, что нужно проверить, это то, что ваше имя приложения соответствует указанному в ваших настройках .py в разделе INSTALLED_APPS.

Как указано в комментариях, имена приложений могут быть в форме [parent_app]. [app_name]. В этом случае для миграции требуется [имя_пользователя].

Ответ 3

Просто упомянем еще одну возможную причину:

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

Чего мне не хватает - это правильный файл MANIFEST.in Также параметр include_package_data в setup() из файла setup.py не был установлен на True.

Ответ 4

Я заметил, что только те приложения, которые фактически содержат папку migrations, содержащую файл __init__.py, распознаются миграциями. IE, имеющего только models.py в вашем приложении, недостаточно.