2014-11-03 12 views
10

Ich versuche, von Django 1.6.7 auf Django 1.7.1 zu aktualisieren, also habe ich versucht, meine App zu migrieren.Django 1.7 - App 'your_app_name' hat keine Migrationen

Ich habe die django docs here gefolgt.

Ich löschte den Süden von meinen installierten Apps.

Im Migrationsverzeichnis lösche ich die nummerierten Migrationsdateien und die .pyc-Dateien, aber ich behielt das Verzeichnis & __ init__.py-Datei.

ich dann laufen:

python manage.py makemigrations your_app_name 

ich die folgende Bestätigungsmeldung:

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

Weiter Ich betreibe:

python manage.py migrate your_app_name 

erhielt ich folgende Fehlermeldung:

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

sich nach den docs, lief ich auch:

python manage.py migrate --fake your_app_name 

ich die gleiche Fehlermeldung erhalten:

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

jemand Schuppen kann etwas Licht auf, warum das für mich nicht funktionieren wird?

+0

Erstellt 'makemigrations' eine neue Datei in Ihrem Ordner' migrations'? – ChillarAnand

+0

ja.Die neue Datei heißt 0001_initial – user1261774

Antwort

8

Wenn Sie eine einzelne App haben, laufen migrate ohne die App oder Migration Angabe arbeiten kann.

Wenn ja, ist das erste, was zu überprüfen, ob Ihre App-Namen, die in Ihrem settings.py unter INSTALLED_APPS angegeben abgestimmt.

Wie in den Kommentaren darauf hingewiesen, App-Namen können in der Form [parent_app] sein. [App_name]. In diesem Fall muss nur [app_name] migrieren.

+4

Dieser zweite Teil kann für Leute, die hier landen, etwas verwirrend sein, da der Name der installierten App '[parent_app]. [app_name]' sein kann, während der Befehl migrate.py nur [app_name] haben soll. Verwirrend, das kann den gleichen Fehler wie das ursprüngliche Plakat geben. – Jmills

+0

Es funktionierte für mich. – vanguard69

+1

DANKE @ TheCardCheat! Ich benutzte 'parent_app.app_name' und kam nirgends hin. – annapetry

0

einfach eine andere mögliche Grund zu erwähnen:

In meiner Django App i die richtigen Migrationen und installiert die App mit Pip und bekam den gleichen Fehler.

Was ich war fehlt, ist eine richtige MANIFEST.in Datei Auch die Parameter include_package_data im Setup() aus der setup.py-Datei nicht auf True gesetzt wurde.

0

Ich habe festgestellt, dass nur diejenigen Apps, die tatsächlich einen migrations Ordner enthalten, der eine Datei __init__.py enthält, durch Migrationen erkannt werden. IE mit nur models.py in Ihrer App ist nicht genug.