Как создать 2 соединения (mysql и postgresql) с Doctrine2 в Symfony2 - PullRequest
4 голосов
/ 09 декабря 2011

Я новичок в Symfony2.И мой вопрос довольно прост.Я бы использовал 2 соединения с БД на разных хостах и ​​драйверах в одном комплекте.

Не могли бы вы помочь мне с этим?

1 Ответ

8 голосов
/ 09 декабря 2011

Вы можете сделать что-то вроде:

doctrine:
    dbal:
        default_connection: alpha
        connections:
            alpha:
                driver:     pdo_mysql
                host:       localhost
                dbname:     alpha
                user:       root
                charset:    UTF8
            beta:
                driver:     pdo_pgsql
                host:       localhost
                dbname:     beta
                user:       root
                charset:    UTF8
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        entity_managers:
            alpha:
                connection: alpha
            beta:
                connection: beta

Видите ли, мы объявляем два соединения в разделе dbal и два менеджера сущностей в orm один.

После этого, вы можете использовать оба:

$emAlpha = $this->getDoctrine()->getEntityManager('alpha');
$emBeta  = $this->getDoctrine()->getEntityManager('beta');

Поскольку alpha был определен как один по умолчанию, вы можете получить к нему доступ без указания его имени:

$emAlpha = $this->getDoctrine()->getEntityManager();
...