30

管理者とユーザーの 2 つのデータベースと 2 つのモデルがあります。

モデルを 2 つのデータベースに同期したいと考えています。admin モデルをデータベース A に、user モデルをデータベース B に。

モデル パスをINSTALLED_APPSとに設定するとsyncdb、2 つのモデルが既定のデータベースに同期されます。

syncdbなどのコマンドでデータベースを設定するsync --database="B"と、2 つのモデルがデータベース B に同期されます。

私の問題は、2 つのモデルを 2 つのデータベースに同期するにはどうすればよいかということです。

4

2 に答える 2

22

特定のモデルに使用される特定のデータベースを定義するには、データベース ルーターを定義する必要があります。

複数のデータベースを使用する最も簡単な方法は、データベース ルーティング スキームを設定することです。デフォルトのルーティング スキームでは、オブジェクトが元のデータベースに「固定」されたままになります (つまり、foo データベースから取得されたオブジェクトは同じデータベースに保存されます)。既定のルーティング スキームでは、データベースが指定されていない場合、すべてのクエリが既定のデータベースにフォールバックされます。

例として、このスニペットを参照してください: http://djangosnippets.org/snippets/2687/

以下も参照してください。

于 2013-08-31T11:12:08.300 に答える