2011-01-25 13 views
1

私は既存のシャードデータベースシステムでZend + Doctrineのパフォーマンスを研究しています。私のアプリケーションモデルのほとんどはメインデータベース(db1)に接続しますが、いくつかのモデルは異なるデータベース(db2、db3など)に動的に接続する必要があります。Doctrineモデルのdb接続を切り替える

異なるデータベースに接続するモデルのうち、それは接続を切り替えるためです。 Doctrine_Recordに、新しい接続インスタンスを提供するためにオーバーライドできるメソッドがありますか?

答えて

2

必要は何かを上書きします。あなたは、単純なあなたが(デフォルトごとに、あなたはが、今は別の名前を持つn個の接続も名前を持つの接続を1つ持っている必要があります必要な数の接続を作成します。

$conn1 = Doctrine_Manager::connection('mysql://username:[email protected]/database1', 'connection1'); 
$conn2 = Doctrine_Manager::connection('mysql://username:[email protected]/database2', 'connection2'); 

異なるモデルが異なる接続にバインドすることができます。私は常に、ベースモデルに入れて。

Doctrine_Manager::connection()->bindComponent('Your_Model', 'connection1'); 

代わりに、接続マネージャ

setCurrentConnection('connection1') 
+0

の方法を使用することができますそれを説明していただきありがとうございます。 – Kevin

関連する問題