2014-06-13 10 views
15

Versuchen, das Tutorial bei Django project zu folgen.Django CommandError: App 'fragt ab' hat Migrationen

Das Problem, das mir begegnet ist, ist, dass, wenn Sie den Befehl ausführen: python manage.py sql polls ich den Fehler gegeben habe:

CommandError: App 'polls' has migrations. only the sqlmigrate and sqlflush commands can be used when an app has migrations

Bisher kann ich nicht scheinen, jede Anleitung im Internet zu finden, oder diese Website für eine Lösung des Programms.

+1

Sind Sie sicher, dass Sie verwenden Django 1.6? Was ist der Wert von 'INSTALLED_APPS' Einstellungen? Vielen Dank. – alecxe

+0

Im mit Django 1.8 im Moment ist 1,6, die benötigt? INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', \t 'Umfragen' ) – sneexz

+0

Ich habe diesen Fehler beim Ausführen der [PyCharm Django Tutorial] (https://www.jetbrains.com/pymarch/quickstart/django_guide.html) mit Django 1.7. 2, wo das Tutorial derzeit Django 1.6.5 annimmt. –

Antwort

18

Das Problem ist, dass Sie Django 1.8 verwenden, während Sie durch 1.6 Tutorial gehen. Achten Sie auf die ersten Worte zu Beginn des tutorial:

This tutorial is written for Django 1.6 and Python 2.x. If the Django version doesn’t match, you can refer to the tutorial for your version of Django by using the version switcher at the bottom right corner of this page, or update Django to the newest version.

In Ihrem Fall entweder Herabstufung auf 1,6, oder die tutorial for the development (currently 1.8) version verwenden.

31

können Sie entweder laufen python manage.py makemigration gefolgt von python manage.py migrate oder Migrationen löschen Ordner

+5

Das Löschen des Migrationsordners funktionierte wie ein Zauber! –

+0

Wofür ist der Migrationsordner? Was ist eine ** Migration ** in diesem Zusammenhang? –

+4

der Befehl ist Python manage.py Makemigrationen nicht Makemigration –

3

einfach löschen Ordner app-name/migrations.

In und Python 3.4 die Lösung, die ich gefunden habe, ist diesen Ordner zu löschen und alles funktioniert jetzt.

+3

Dies ist bestenfalls kludgy. Migrationen sind ein wesentlicher Bestandteil von Django, und Sie sollten lernen, mit ihnen zu arbeiten, nicht nur Dinge zu löschen und auf das Beste zu hoffen. – eykanal

+0

Obwohl Eykanal richtig ist, hatte ich ähnliches Problem und das ist einfach die schnellste Antwort. Manchmal funktioniert Hacking und macht dein Leben einfacher. *Manchmal.* –

0

Mit django 1.7, statt Löschen app-name/Migrationen Ordner, in Ihrem MIGRATION_MODULES Eintrag Ihrer Website, können Sie die Anwendung Wörterbuch Wert mit einem nicht vorhandenen Modulnamen umbenennen, indem Sie eine Dummy-Folge hinzufügen:

MIGRATION_MODULES ['my_app'] + = '_xx'

Und dann manage.py sqlclear my_app funktioniert gut.

0

In Django 1.8, sollten Sie einen anderen Befehl ausführen - makemigrations [App-Name]:

$ python manage.py makemigrations polls 

Sie etwas Ähnliches wie die folgende sehen sollte:

Migrations for 'polls': 
    0001_initial.py: 
    - Create model Question 
    - Create model Choice 
    - Add field question to choice 
Verwandte Themen