2016-08-22 11 views
2

は、エラー 私のDjangoのバージョンがあります:私はちょうどステップによってジャンゴ・userenaステップをインストール1.9.5 は、しかし、私は移行する場合それはエラーが発生し、私はそれを解決する方法はありません。django.db.utils.OperationalError:いいえ、そのようなテーブル:私はジャンゴ-userenaをインストールした後AUTH_USER

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 

アプリケーション:

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',  
] 
+0

。それはバグです、あなたはそれを報告すべきです。 –

答えて

1

を助けるかもしれない問題は、この行です:それが定義される前に

File "C:\Python27\lib\site-packages\guardian\management\__init__.py", line 33, in create_anonymous_user User.objects.get(**lookup)

guardian\management\__init__.pyUserを呼んでいます。

なぜ定義される前に呼び出されますか? ...まあ、それらを定義するdbの変化(発見された変更)

があるかどうかを調べるためにmakemigrationsによって呼び出される...これは「鶏と卵」の問題です。

私は同様の問題と同じエラーが、問題のコードは、私自身のコード(ないguardianのようなライブラリ)だっ持っ

私のコードは次のようだった:

CHAT_BOT_USER, created = User.objects.get_or_create(username='rosty', \ email=settings.EMAIL_HOST_USER)

問題の一部auth_userテーブルが作成される前にUserが使用されています

テーブルが存在するときにコードを実行するだけで解決しました。これは、OperationErrorがない場合に発生します。そして、あなたはこのようなtry/exceptでそれを知ることができます。

from django.db import OperationalError 

try: 
    CHAT_BOT_USER, created = User.objects.get_or_create(username='rosty', email=settings.EMAIL_HOST_USER) 

except OperationalError: 
    CHAT_BOT_USER = None 

if created: 
    CHAT_BOT_USER.set_password(settings.EMAIL_HOST_PASSWORD) 
    CHAT_BOT_USER.save() 

この方法では、makemigrationsexceptコードを実行し、runservertryコードを実行します。

createdブールは、あなたがUser.objects....結果に依存makemigration実行コードを避けるために、他の方法を使用することができ

それはDBがまだ利用できない状況でORMを照会guardian`アプリケーション `のように見えます
関連する問題