如何在Symfony2中使用Doctrine2创建2个连接(mysql和postgresql)

时间:2011-12-09 02:41:12

标签: symfony doctrine-orm

我是Symfony2的新手。我的问题很简单。 我会在不同的主机和驱动程序中使用2个连接到DB。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:8)

您可以执行以下操作:

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