Database 我可以在Symfony2中设置多个数据库吗?

Database 我可以在Symfony2中设置多个数据库吗?,database,symfony,doctrine-orm,Database,Symfony,Doctrine Orm,我想知道我是否可以在Symfony2中设置多个数据库(我将它与Doctrine2一起使用),因为当我想查看另一个应用程序时,它会说有错误,并且这样的表不存在 我的问题是,每当我想查看不同的应用程序时,我是否必须更改我的数据库(我在parameters.ini文件中进行更改),还是有其他方法?这可能是如何实现这一点的有用建议这可能是如何实现这一点的有用建议基本上,你必须定义(至少)每个数据库1个EntityManager,每个数据库(至少)1个连接。这是通过app/config/config.ym

我想知道我是否可以在
Symfony2
中设置多个数据库(我将它与Doctrine2一起使用),因为当我想查看另一个应用程序时,它会说有错误,并且这样的表不存在


我的问题是,每当我想查看不同的应用程序时,我是否必须更改我的数据库(我在
parameters.ini
文件中进行更改),还是有其他方法?

这可能是如何实现这一点的有用建议这可能是如何实现这一点的有用建议基本上,你必须定义(至少)每个数据库1个EntityManager,每个数据库(至少)1个连接。这是通过
app/config/config.yml
中的配置实现的:

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: conn1
        connections:
            conn1:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
            conn2:
                driver:   %database2_driver%
                host:     %database2_host%
                port:     %database2_port%
                dbname:   %database2_name%
                user:     %database2_user%
                password: %database2_password%
                charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%

        default_entity_manager:   em1
        entity_managers:
            em1:
                connection:       conn1
                mappings:
                    XxxBundle1: ~
            em2:
                connection:       conn2
                mappings:
                    XxxBundle2: ~
由于必须知道哪个捆绑包包含给定EntityManager的映射实体,因此必须为每个数据库创建(至少)1个捆绑包。正如我写的,不要忘记删除orm部分中的
auto_mapping
参数


基本上,每个数据库必须定义(至少)1个EntityManager,每个数据库必须定义(至少)1个连接。这是通过
app/config/config.yml
中的配置实现的:

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: conn1
        connections:
            conn1:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
            conn2:
                driver:   %database2_driver%
                host:     %database2_host%
                port:     %database2_port%
                dbname:   %database2_name%
                user:     %database2_user%
                password: %database2_password%
                charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%

        default_entity_manager:   em1
        entity_managers:
            em1:
                connection:       conn1
                mappings:
                    XxxBundle1: ~
            em2:
                connection:       conn2
                mappings:
                    XxxBundle2: ~
由于必须知道哪个捆绑包包含给定EntityManager的映射实体,因此必须为每个数据库创建(至少)1个捆绑包。正如我写的,不要忘记删除orm部分中的
auto_mapping
参数