在Doctrine模型中切换数据库连接

时间:2011-01-25 14:03:32

标签: zend-framework doctrine doctrine-1.2

我正在研究现有分片数据库系统上的Zend + Doctrine性能。我的大多数应用程序模型都连接到主数据库(db1),而某些模型需要动态连接到不同的数据库(db2,db3等)。

在连接到不同数据库的模型中,我需要一种简单的方法来切换连接。在Doctrine_Record中是否有任何方法可以覆盖以提供新的连接实例?

2 个答案:

答案 0 :(得分:2)

无需覆盖任何内容。您可以根据需要创建尽可能多的连接(默认情况下,应该有一个也有名称的连接,现在您有n个不同名称的连接。

$conn1 = Doctrine_Manager::connection('mysql://username:password@localhost/database1', 'connection1');
$conn2 = Doctrine_Manager::connection('mysql://username:password@localhost/database2', 'connection2');

不同的模型可以绑定到不同的连接。我总是将它们放在基础模型中。

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

或者,您可以使用Connection Manager的方法

setCurrentConnection('connection1')

答案 1 :(得分:0)