2011-07-20 26 views
3

私は同じスキーマを持つデータベースをいくつかのサーバに分散しています。異なるサーバ上のデータベースから読み込むためにDjangoモデルをルーティングする必要があります。私はルータを使用してsettings.DATABASESの異なるデータベースに読み込みを送信できますが、アドレスはいつでも変更でき、DATABASESを最新のものにすることは実用的ではないことがあります。Djangoモデルと動的接続のインタフェース

Djangoはほとんどの場合、データベースエイリアスに基づいてモデルをルーティングします。これは適切な接続を参照するために使用されます。django.db.connections_connections属性をハックすることなく、ConnectionHandlerインスタンスに接続とエイリアスを動的に追加する良い方法はありますか? settings.DATABASESを動的に入力する方法を見つける必要がありますか?

+0

古い質問ですが、Dave Aaron Smithの答えが役に立ちます:http://stackoverflow.com/questions/268089/multiple-database-support-in-django またはdocの回答: './manage.py syncdb --database = users'、 'users'は残念なエイリアスです! 明確な答えを出すことはできません(私にはそれも必要です)、私はGoogleにしましたが、まだ何もありません! – StefanNch

+0

私が把握した解決策は、設定のDATABASES dictにdictsを動的に追加することでした。基本的には、新しいサーバーが必要なときはいつでも、DATABASESに適切な設定を複製し、ホストを適切なサーバー名またはIPに置き換えて、DATABASESにサーバー名の別名を追加します。 – exupero

答えて

-1

settings.DATABASESを動的に入力する方法を教えてください。

、実行時にsettings.pyyou should not変更することを意味します。

+1

これは、あなたの質問へのコメントとして、より良いものになっているかもしれません。 – QasimK