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

如何在Symfony2中使用Doctrine2创建2个连接(mysql和postgresql),symfony,doctrine-orm,Symfony,Doctrine Orm,我是Symfony2的新手。我的问题很简单。 我会在一个包中使用两个连接到不同主机和驱动程序上的DB 你能帮我做这个吗?你可以做如下事情: doctrine: dbal: default_connection: alpha connections: alpha: driver: pdo_mysql host: localhost

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


你能帮我做这个吗?

你可以做如下事情:

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
one被定义为默认值,您可以在不指定其名称的情况下访问它:

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

谢谢但如果我只在读取模式下使用某些数据库,那么实体类中的setter方法是必须使用的?我需要为现有数据库(在只读模式下)指定实体类中的字段类型吗?是的,因为条令需要这些信息来正确地定义实体。。。