1

Doctrineを使用して、あるデータベースでINSERTクエリを実行し、別のデータベースでSELECTクエリを実行する簡単な解決策はありますか?

MysqlレプリケーションでDoctrineを使用しようとしています...

4

1 に答える 1

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、updateメソッドsave:

public function save(Doctrine_Connection $conn = null)
{
    if ($conn === null) {
        $conn = Doctrine_Manager::getInstance()->getConnection('master');
    }
    parent::save($conn);
}
于 2012-04-11T15:57:06.543 に答える