Warum erhalte ich eine "auth_user nicht vorhanden ist"Fehler beim ausführen der "Migration" auf eine neu erstellte django Projekt mit "Registrierung redux" - app installiert?
Gegeben eine neu erstellte django Projekt mit den folgenden apps installiert:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'registration',
)
Wenn ich ./manage.py migrieren Sie zum ersten mal bekomme ich die folgende Fehlermeldung:
Operations to perform:
Synchronize unmigrated apps: staticfiles, messages, registration
Apply all migrations: sessions, admin, auth, contenttypes
Synchronizing apps without migrations:
Creating tables...
Creating table registration_registrationprofile
Running deferred SQL...
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps
cursor.execute(statement)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/tcosta/Virtualenvs/django_project/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "auth_user" does not exist```
Scheint es Django ist, die versuchen, um die Registrierung der Tabellen vor der user-Tabelle.
Dieser Fehler nicht passiert, wenn ich einen Kommentar der Registrierung der app und ausführen, migrieren und dann kommentieren Sie die Registrierung app, und führen Sie migrieren wieder. Aber das ist nicht der richtige Weg, es zu tun, richtig?
- Django-Migrationen sollten in der Lage sein, um anzugeben, Abhängigkeiten zu bestimmen, um so die
registration
migration könnte wahrscheinlich verwenden Sie eindependency
zuauth.User
. Da es eine Bibliothek, ich bin mir nicht wirklich sicher, was die Lösung ist hier. Vielleicht ist die Reihenfolge derINSTALLED_APPS
? - Ich habe bereits verändert die Reihenfolge der INSTALLIERTEN APPS, aber es hat nicht funktioniert! 🙁 Danke übrigens.
- Zu "lösen" hatte ich, um alle Migrationen für alle apps und dann startete ich eine Wanderung, und es funktionierte. stackoverflow.com/questions/29689365/... (Pedro asnwer)
- Ich habe dasselbe Problem.
python manage.py migrate
werden alle apps in der richtigen Reihenfolge mit auth zuerst auf mysql5.6 aber wenn ich mich bewege, zu mysql5.7, sehe ich dieses Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach der Aktualisierung meines Django version, ich habe diesen Fehler und beheben wie laufen diese beiden Linien:
auth_user-Tabelle innerhalb auth Modell sollte zuerst ausgeführt werden, denke ich.
manage makemigrations
undmanage migrate
aber dies ist die erste, die ich gesehen habe, dass erwähntmanage migrate auth
. Ist dies aufgrund der entstehenden meine app mit Django 1.6 und Upgrade auf dem Weg zu 2.0? Oder sind die meisten dieser Antworten nur unvollständig?Ich denke, Sie werden gebraucht, um:
python manage.py syncdb
und möglicherweise müssen Sie setup einige Abhängigkeiten? Wahrscheinlich nicht notwendig, nach syncdb.
Süd 1 style (Django < 1.7)
Süd-2-Stil (Django >= 1.7)
Sobald Sie eine migration für die app wird es automatisch fügen Sie die erforderlichen Abhängigkeiten. Also in diesem Fall führen Sie einfach
./manage.py makemigrations registration
.Bitte überprüfen Sie die registration/migrations/0001_initial.py Datei, und Sie sollten so etwas wie dieses:
Bedeutet dies, dass Sie benötigen, zu erstellen Migrationen für alle Ihre apps mit jeder Art von Abhängigkeit.
Ich hatte auch dieses problem, gelöst wird es durch den Austausch Alter Anmeldung mit eine,pull #25:
Das problem wird vermieden, wenn Sie als Pedro Wagner verrät (auth_user Fehler mit Django 1.8 und syncdb /migrieren):
Stellen Sie sicher, dass für alle Ihre apps, es gibt erste Migrationen von Dateien durch ausführen von:
Ich würde es tun, nicht nur für diejenigen, die davon abhängen, auth, weil ich denke, das problem ist allgemeiner.
Die Ursache für dieses Verhalten scheint mir, dass für einige Grund
nicht immer schaffen die ersten Migrationen, wenn Sie nicht bereits vorhanden sind, Gegenteil zu:
Leider kann ich nicht ergründen, die Gründe für diese Asymmetrie.