私は同じスキーマを持つデータベースをいくつかのサーバに分散しています。異なるサーバ上のデータベースから読み込むためにDjangoモデルをルーティングする必要があります。私はルータを使用してsettings.DATABASES
の異なるデータベースに読み込みを送信できますが、アドレスはいつでも変更でき、DATABASES
を最新のものにすることは実用的ではないことがあります。Djangoモデルと動的接続のインタフェース
Djangoはほとんどの場合、データベースエイリアスに基づいてモデルをルーティングします。これは適切な接続を参照するために使用されます。django.db.connections
。 _connections
属性をハックすることなく、ConnectionHandler
インスタンスに接続とエイリアスを動的に追加する良い方法はありますか? settings.DATABASES
を動的に入力する方法を見つける必要がありますか?
古い質問ですが、Dave Aaron Smithの答えが役に立ちます:http://stackoverflow.com/questions/268089/multiple-database-support-in-django またはdocの回答: './manage.py syncdb --database = users'、 'users'は残念なエイリアスです! 明確な答えを出すことはできません(私にはそれも必要です)、私はGoogleにしましたが、まだ何もありません! – StefanNch
私が把握した解決策は、設定のDATABASES dictにdictsを動的に追加することでした。基本的には、新しいサーバーが必要なときはいつでも、DATABASESに適切な設定を複製し、ホストを適切なサーバー名またはIPに置き換えて、DATABASESにサーバー名の別名を追加します。 – exupero