タグ

djangoとdbに関するikeikeikeikeのブックマーク (2)

  • 特定なDjangoモデルを別DBに保存するメモ

    今日、会社で特定なDjangoモデルを別のDBに保存するようなニーズがあって、Django マルチDBを使えるかなという話がありました。 この間、 Django1.2のマルチDBはレプリケーション対応に微妙 っブログに書きましたけど、ModelでDBを使い分けるのができるはずと思って、DBルータを書いてみた。 Monjudoh というモデルを ‘monjudoh’ DBに保存するためのDBルータです。 from monjudoh.models import Monjudoh class MonjudohRouter(object): def db_for_read(self, model, **hints): if issubclass(model, Monjudoh): return 'monjudoh' return None def db_for_write(self, model,

  • Django 1.2 マルチ DB と master/slave レプリ

    Django 1.2 はマルチDB対応ができまして、master/slave レプリにも対応しているのですが、詳しく見るといろな問題が出てきます。 Django 1.2 のマルチDB対応は どのDBから、読み込むか、どのDBに書き込むかがDBルータで決める。しかし、そのルータで決める時点でリクエストオブジェクトにアクセスできないので、レプリラグのどを自動的に対応するのが難しい。 レプリケーションを使っている場合、マスターDB に書き込んだ時に、データがスレーブDBまで流れるラグがあるので、DBに書き込んだデータがすぐDBから取れない場合がある (eventual consistency)。 obj = MyModel.objects.create(content="Hello World") obj.content = "Hello World!" obj.update() # 失敗する可

  • 1