4

その場でDjangoに新しいデータベース接続を追加することは可能ですか?

複数のデータベース (django 1.2.1) を使用するアプリケーションがあり、実行中に新しいデータベースを作成できます。この新しいデータベースをすぐに使用する必要があります ( django.db.connections[db_alias])。サーバーを再起動しなくても可能ですか? あちこちでモジュールを使用しreloadていますか?

お時間をいただきありがとうございます。

4

1 に答える 1

3

可能ですが、お勧めしません...現在の接続ハンドラにアクセスできます...

次のようなものを使用します。

from django.db import connections
if not alias in connections.databases:
    connections.databases[alias] = connections.databases['default']  # Copy 'default'
    connections.databases[alias]['NAME'] = alias              

現在のスレッドでデータベース アクティビティが発生している間は、データベース ディクショナリに新しいエイリアスを追加しようとしないでください。

克服しなければならない問題は、データベースにアクセスしようとする前に常に現在のスレッドがこのコードに触れる場合、このコードをどこかに配置する必要があることです。これを実現するためにミドルウェアを使用します。

于 2011-10-04T22:45:56.803 に答える