1

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

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

4

2 回答 2

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');

或者,您可以使用连接管理器的方法

setCurrentConnection('connection1')
于 2011-01-26T08:45:13.453 回答
0

这应该可以帮助您:

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/connections/en

于 2011-01-25T21:30:18.533 回答