2015-10-12 13 views
8

Mam istniejący projekt django z aplikacjami a, b, c. Wszystkie są zawarte w zainstalowanych aplikacjach w pliku ustawień. Mają własne modele, dla których migracje zostały już uruchomione. Teraz, jeśli dodam nową aplikację d, dodaj do niej model, dołącz go do zainstalowanych aplikacji i spróbuj uruchomić zbiorczą makemigrację przy użyciu python manage.py makemigrations Otrzymuję komunikat no changes detected. Czy zachowanie nie powinno być takie, jak wykrycie nowej aplikacji i przeprowadzenie migracji początkowej? Wiem, że mogę to zrobić ręcznie przy użyciu python manage.py makemigrations d, ale chcę to zrobić za pomocą polecenia python manage.py makemigrations. Czy ktoś może wyjaśnić to zachowanie?Django 1.8, makemigracje nie wykrywa nowo dodanej aplikacji

+0

Czy jesteś całkowicie pewien, że dodany do '' d' installed_apps'? – mccc

+0

@mccc tak. Byłem w stanie odtworzyć ten sam scenariusz na komputerze mojego kolegi. –

+0

Czy utworzyłeś aplikację za pomocą polecenia 'startapp'? A może po prostu utworzyłeś folder 'd'? –

Odpowiedz

17

Jeśli ręcznie utworzysz nową aplikację i dodasz ją do ustawienia INSTALLED_APPS bez dodawania do niej modułu migracji, system nie wykryje zmian, ponieważ nie jest to uważane za skonfigurowaną aplikację do migracji.

Polecenie startapp automatycznie dodaje moduł migracji do nowej aplikacji.

struktura StartApp

foo/ 
    __init__.py 
    admin.py 
    models.py 
    migrations/ 
     __init__.py 
    tests.py 
    views.py 
+1

Rozumiem to i zgadzam się na to. Moje pytanie brzmi: po dodaniu aplikacji ręcznie przy użyciu startapp (z modułem migracji wewnątrz niej automatycznie dodanym przez startapp) i dołączeniu prostego modelu do modelu .s.s.s. w tym samym programie, dlaczego nie została wykonana komenda python manage.py makemigrations zaraz po tym, aby pobrać zmiany, które nowa aplikacja została dodana z modelem i utworzyć odpowiednią tabelę? –

+0

Nie mogę odtworzyć twojego scenariusza. W moim przypadku podczas dodawania nowej aplikacji, ręcznie lub za pomocą polecenia startapp, w tych warunkach zmiany są pobierane zgodnie z oczekiwaniami. –

+0

W każdym razie dzięki. Logicznie nie powinno się to dziać, nie wiem, co może być przyczyną tego. –

Powiązane problemy