【问题标题】:Switching db connection in Doctrine models在 Doctrine 模型中切换数据库连接
【发布时间】:2011-01-25 14:03:32
【问题描述】:

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

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

【问题讨论】:

    标签: zend-framework doctrine doctrine-1.2


    【解决方案1】:

    不需要覆盖任何东西。您只需根据需要创建任意数量的连接(默认情况下,您应该有一个连接也有一个名称,现在您有 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')
    

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多