django.db.utils.OperationalError: no such table: auth_user
Nachdem ich der Installation von Django-userena,es ist ein Fehler
meine django-version :1.9.5
Ich nur installieren django-userena Schritt für Schritt ,aber wenn ich migrieren ,ist ein Fehler passiert und ich weiß nicht, wie es zu lösen.
Traceback (most recent call last):
File "manage.py", line 12, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 353, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 399, in execute
output = self.handle(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\migrate.py", line 204, in handle
emit_post_migrate_signal(self.verbosity, self.interactive, connection.alias)
File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 50, in emit_post_migrate_signal
using=db)
File "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py", line 192, in send
response = receiver(signal=self, sender=sender, **named)
File "C:\Python27\lib\site-packages\guardian\management\__init__.py", line 33, in create_anonymous_user
User.objects.get(**lookup)
File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 381, in get
num = len(clone)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 240, in __len__
self._fetch_all()
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1074, in _fetch_all
self._result_cache = list(self.iterator())
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 52, in __iter__
results = compiler.execute_sql()
File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 848, in execute_sql
cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\utils.py", line 95, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py", line 323, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_user
apps:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'userena',
'guardian',
'easy_thumbnails',
'accounts',
]
- Es sieht aus wie die Anwendung
guardian
Abfragen der ORM in einer situation, wo die DB ist noch nicht verfügbar. Das ist ein bug, du solltest das melden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Ihr Django-version 1.9 oder niedriger, verwenden Sie
dann
mehr details auf https://github.com/django/django/blob/master/django/contrib/auth/forms.py
Kann es helfen,
Das problem ist diese Zeile:
File "C:\Python27\lib\site-packages\guardian\management\__init__.py", line 33, in create_anonymous_user
User.objects.get(**lookup)
guardian\management\__init__.py
ruftUser
bevor es definiert ist.Warum ist es aufgerufen, bevor Sie definiert ist?
...gut, heißt es von
makemigrations
um herauszufinden, ob es änderungen in derdb
um diese zu definieren (die Veränderungen, die gefunden werden)...also das ist eine "Henne-und-ei" - problem.
Ich habe den gleichen Fehler mit einem ähnlichen problem, aber die fehlerhaften code war mein eigener code (keine Bibliothek wie
guardian
)Mein code war so:
CHAT_BOT_USER, created = User.objects.get_or_create(username='rosty', \ email=settings.EMAIL_HOST_USER)
Der problematische Teil ist der
User
verwendet wird, bevor dieauth_user
Tabelle erstelltIch gelöst, indem nur ausführen von code, wenn die Tabelle vorhanden ist. Dies geschieht, wenn es keine
OperationError
. Und Sie wissen, können Sie es mit einemtry/except
wie diese:Diese Weise
makemigrations
läuft dieexcept
code undrunserver
läuft dietry
code.Hinweis: die
created
boolean, können Sie jeden anderen Weg, um zu vermeidenmakemigration
code ausführen, hängt von derUser.objects....
ErgebnisseWar ich bekomme die gleichen Fehler, und beheben Sie das gleiche, ich habe überprüft, ob die erwähnte Tabelle in der der Fehler vorhanden ist in der DB verbunden ist oder nicht. Es war nicht so. Angewendet migration erneut und es funktionierte.