2015-04-20 5 views
0

Согласно the Django docs, если я хочу, чтобы создать начальную миграцию для приложения, я должен делать:Django 1.7 - создать начальную миграцию

$ python manage.py makemigrations my_app 

Однако, если я делаю это в моем проекте, я получаю:

не обнаружено в приложении «my_app» изменения

, даже если нет миграции для my_app еще - my_app/миграции/папка не только имеет __init__.py файл.

У меня нет модели managed = False в моей модели. В рассматриваемых классах моделей даже не определен класс Meta. Что еще может помешать Django обнаружить изменения модели?

Как Django обнаруживает, есть ли/когда есть изменения?


Update:
Я хотел бы добавить, что миграция для этого конкретного приложения работала нормально, когда я использую Южную миграцию. Это происходит только после перехода на Django 1.7 и встроенных миграций, что он больше не может понять, когда/когда есть изменения модели для этого конкретного приложения (миграция для других приложений работает нормально).

+0

Правильно ли определены ваши модели? I.e., наследуются ли они от 'models.Model'? –

+0

Да, они наследуются от 'models.Model'. Миграции для этих моделей отлично работали, когда я использовал Юг вместо миграции Django 1.7. Когда я столкнулся с вышеупомянутой проблемой, на самом деле я был в процессе перехода на Django 1.7. Я следовал инструкциям «Обновление с юга», а затем заметил, что в одном приложении отсутствуют миграции. – Troy

+0

Попробуйте изменить модель и запустить 'python manage.py makemigrations my_app', чтобы узнать, что такое результат (тогда вы можете отменить изменение модели и удалить миграцию, оставив незадействованный код и базу данных). – mcastle

ответ

0

Возможно, вам захочется найти каталог «миграций» где-нибудь в вашем домашнем каталоге virtualenv или на вашем пути.

Я несколько раз сталкивался с подобной проблемой при попытке переноса приложения с юга на миграцию Django 1.7. По какой-то причине Django не найдет правильную папку миграции, и поэтому это приведет к миграции в маловероятное место, например <virtualenv>/bin/myapp/migrations dir (при использовании django-admin.py). Поэтому каждый раз, когда я запускаю makemigrations, Django обнаружит эту «устаревшую» миграцию и отобразит сообщение No changes detected in app 'my_app'.

Извините, если я неясен в отношении особенностей, я буду обновлять следующий раз, когда я столкнусь с этой проблемой.

0

Немного поздно, но, просто поразив это после создания совершенно нового приложения, мне внезапно стало ясно, что я не добавил новое приложение в INSTALLED_APPS в settings.py.

INSTALLED_APPS = (
    ... 
    my_app, 
    ... 
) 

Выполнение этого и последующего повторного запуска python manage.py makemigrations my_app привело к первоначальной миграции.

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