[Symfony2] DB の Master/Slave(マスタースレーブ)構成について

Symfony2 での DB の Master/Slave 構成について調べたのでメモ。

symfony1系には sfDoctrineMasterSlavePlugin があるのですが、Symfony2でも同じようなものがないかなと思っていたら、ありました。

Doctrine の DBAL2.16 から実装された MasterSlaveConnection を使えばできるみたいです。

lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php at master from doctrine/dbal – GitHub はてなブックマーク - lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php at master from doctrine/dbal - GitHub
 

DBAL2.16 以上が使えないようでしたら、下記記事を参考に「データベース接続ごとのEntityManagerを明示的に切り替えるような方法」で対応するしかなさそうです。

Symfony2を利用してのDBのMaster/Slave構成について – Google グループ はてなブックマーク - Symfony2を利用してのDBのMaster/Slave構成について - Google グループ

複数のエンティティマネージャと連携する方法 | Symfony2日本語ドキュメント はてなブックマーク - 複数のエンティティマネージャと連携する方法 | Symfony2日本語ドキュメント

以上です。