2011-01-31 12 views
0

私はpostgresql 9.0でDjango 0.97バージョンを使用しています。私はマスタDBサーバとスレーブDBサーバ上でホット・ストリーミング・レプリケーションを設定しました。私のアプリケーションは、DB上でボット駆動の重い書き込みを持ち、ユーザーからのみ読み込みます。したがって、私はボットの書き込みアクセスのためのユーザーと書き込みアクセスのマスターdbに対して読み取りアクセススレーブdbを作成すると非常に最適化されます。残念ながら、Django 1.2のみが複数のデータベースをサポートしており、私のアプリケーションでアップグレードするための膨大な努力をしています。私は次のリンクを介していくつかのリードを持っています:http://www.eflorenzano.com/blog/post/easy-multi-database-support-django/しかし、これはまた、私のアプリケーションでのdbアクセスのすべてのインスタンスを変更する必要があります。 django core dbモジュールを使って読み込みアクセスと書き込みアクセスに別々のdbサーバを割り当てる簡単な方法はありますか?django 0.97で読み込みDBサーバーと書き込みDBサーバーを分離する方法は?

+0

Djangoの古いバージョンでは、まったく新しいPostgresql機能を使用して、どんな助けを得ても大変な問題になるでしょう。 –

+0

Django 0.97というものはありませんでした。おそらくあなたは0.96と1.0の間の未知のチェックアウトを実行しているでしょう。なぜあなたはアップグレードできませんか? –

答えて

1

あなたの最善の策は、既に存在する機能をハッキングすることよりも大幅に機能が少なくなるため、1.2にアップグレードすることです。ずっと長く0.97に固執すれば、あなたの人生は道のりでもっと難しくなるでしょう。

Django 1.2で複数のDBを使用する方法についていくつかの誤解があるかもしれないと思います。 DjangoのDatabase Routers機能を使用している場合、[あなたのアプリケーションのデータベースアクセスのすべてのインスタンスを変更する]必要はありません。

ルーターでは、読み取りと書き込みに使用するデータベースを指定できます。あなたの既存のdjangoモデルはすべて動作し、適切なデータベースに要求を送信し始めます。ルータを設定するのは簡単ですが、docsにチェックを入れてください。必要なのは、ルータクラスを作成し、どこかに置いてから設定に行を追加することだけです。

これは実際にうまく機能し、期待するほどの作業ではありません。あなたは私たちに言っていないアップグレードに関する他の問題を抱えているかもしれませんが、モデルのところまでは多くの問題があってはいけません。

関連する問題