6

サーバーを実行して Web アプリのローカル バージョンをロードしようとすると、Django 1.5.1 (および 1.5.0) と mysql で次の DatabaseError がスローされます。

/ でのデータベース エラー

スレッドで作成された DatabaseWrapper オブジェクトは、その同じスレッドでのみ使用できます。エイリアス「デフォルト」を持つオブジェクトはスレッド ID 4365488128 で作成され、これはスレッド ID 140735183980896 です。

例外の場所は次のとおりです。

/Users/USERNAME/.envs/PROJECT_NAME/lib/python2.7/site-packages/django/db/backends/init.pyのvalidate_thread_sharing、154 行目

これは、最初のページの読み込み時にのみ発生します。更新を押すと、Web アプリが期待どおりに読み込まれます。Django/python コードを変更し、ローカル サーバーを再検証する必要があると、エラーが返されます。これが発生すると、最初のロードで再び DatabaseError がスローされ、後続のロードでは再びスローされません。

この問題は、私の Django 1.5 プロジェクトでのみ発生しています。mysql をアンインストールし、/usr/local/var/mysql にある mysql バイナリ ファイルをクリアしました。mysql の新規インストールでは、この問題は解決されませんでした。

同様の DatabaseError がここで議論されていますが、私は彼らの解決策に従うことができません:

https://code.djangoproject.com/ticket/17998

ここで途方に暮れています。アイデアや専門知識をいただければ幸いです。ありがとうございました。

4

2 に答える 2

1

これは 1.4 用ですが、問題の原因はあなたのものと同じかもしれません:

https://bitbucket.org/akoha/django-digest/issue/10/conflict-with-global-databasewrapper

その投稿には2つの可能な解決策がありますが、どちらも回避策のようです:

「db.py の close_connection をコメントアウトすることで問題を解決できました」

「間違いなく機能する修正の 1 つは、 https ://docs.djangoproject.com/en/dev/topics に記載されているように、MultiDb/get_default_db()/self.db を django.db.connection と django.db.tranasction に置き換えることです。 /db/sql/#executing-custom-sql-directly "

于 2013-08-05T12:58:55.420 に答える