2016-09-24 3 views
3

Решенные

Интересно:
Джанго makemigrations не обнаруживает проекта/приложения/MyApp

  • ./manage.py makemigrations apps.myapp -> "? 'App apps.myapp' может не найти ли в INSTALLED_APPS"
  • ./manage.py makemigrations myapp -> Работы.
  • ./manage.py makemigrations -> "Никаких изменений не обнаружено" (это не обнаружить изменения, если MyApp находится в корне проекта)



Оригинальный вопрос:

Структура проекта

myproject/ 
    myproject/ 
    apps/ 
     myapp/ 
      __init__.py 
      admin.py 
      models.py 
      urls.py 
      views.py 
      tests.py 
     myapp2/ 
     myapp3/ 
     __init__.py 
    static/ 
    templates/ 
    virtualenv/ 
    manage.py 

myproject/apps/myapp/models.py

from django.db import models 

class MyModel(models.Model): 
    name = models.CharField(max_length=200) 
    created = models.DateTimeField(auto_now_add=True) 

Settings.py

INSTALLED_APPS = [ 
    # ... 
    'apps.myapp', 
    'apps.myapp2', 
    'apps.myapp3', 
] 

makemigrations не может найти "MyApps" это не в корне проекта.
В то же время migrate найдет его.

$ ./manage.py makemigrations apps.myapp 
App 'apps.myapp' could not be found. Is it in INSTALLED_APPS? 

$ ./manage.py migrate apps.myapp 
CommandError: App 'apps.myapp' does not have migrations. 

Разве это не «давайте наши приложения в папку приложений» практика действует больше, я делаю что-то неправильно, или это ошибка команды makemigrations?

Note1: перед запуском makemigrations я удалил папку «migrations» myapp, но я уверен, что это не имеет значения. Он был восстановлен, когда приложение было в корне проекта.

Примечание2: Я сделал исследование Google и StackOverflow, я нашел только подобные вопросы, когда решение было либо «добавить приложение к settings.py», «бегущая makemigrations перед тем мигрировать» или «некоторые миграции проблемы между Django 1.6 и 1,7" . Думаю, ничто из этого не касается моей ситуации.

+0

RE: Note1, да это важно - если нет папки миграции, она не будет создавать его и не будет создавать миграции. –

+0

Создает папку миграции, если myapp находится в корне проекта. – danbal

+0

Я начал новое приложение, перемещенное в каталоге «apps», у него есть папка «migrations». Я получаю ту же ошибку. – danbal

ответ

2

попробовать

INSTALLED_APPS = [ 
    # ... 
    'myproject.apps.myapp', 
] 

и

python manage.py makemigrations myapp 
+0

Пробовал: 'ИмпортError: Нет модуля с именем 'myproject.apps'' – danbal

+0

, тогда ваши настройки неверны – doniyor

+0

Не могли бы вы уточнить? Какую часть моих настроек я разделю, чтобы вы лучше поняли, что может быть не так? – danbal

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