在doctrine中分离INSERT和UPDATE查询

时间:2012-04-05 15:17:00

标签: mysql doctrine

有没有简单的解决方案如何使用Doctrine对一个数据库执行INSERT查询而对另一个数据库执行SELECT查询?

我正在尝试将Doctrine与Mysql复制一起使用......

1 个答案:

答案 0 :(得分:1)

已经找到解决方案,需要修改2个类:

类Doctrine_Query,更改preQuery方法:

public function preQuery()
{
    $doctrine_manager = Doctrine_Manager::getInstance();

    if ($this->getType() == Doctrine_Query::SELECT) {
       $this->_conn = $doctrine_manager->getConnection('slave');
    } else { 
       $this->_conn = $doctrine_manager->getConnection('master');
    }
}

类Doctrine_Record,更新方法保存:

public function save(Doctrine_Connection $conn = null)
{
    if ($conn === null) {
        $conn = Doctrine_Manager::getInstance()->getConnection('master');
    }
    parent::save($conn);
}