Yii に関する覚え書き (複数のDBコネクション)
DBサーバへのコネクションを複数持ちたい場合がある。例えば、セッションデータとアプリケーションのデータが別のDBサーバにある場合など。デフォルトの設定ファイルでは一つしか設定がないが、2 つ以上持たせられるのか。
protected/config/main.php を編集。
テスト1
'db'=>array( 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', ), 'db2'=>array( 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive2.db', ), // run echo get_class(Yii::app()->db); // => CDbConnection echo get_class(Yii::app()->db2); // => CException : Object configuration must be an array containing a "class" element.
"class" 要素が必要らしい。1 つ目の設定にはないのに。
テスト2
'db'=>array( 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', ), 'db2'=>array( 'class'=>'CDbConnection', 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive2.db', ), // run echo get_class(Yii::app()->db); // => CDbConnection echo get_class(Yii::app()->db2); // => CDbConnection
うまくいった。