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

时间:2012-08-14 12:00:09

标签: database symfony doctrine-orm

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

我的问题是,每次我想要查看不同的应用程序时,我是否必须更改我的数据库(我在parameters.ini文件中执行此操作)或者还有其他方法吗?

2 个答案:

答案 0 :(得分:4)

基本上,您必须为每个数据库定义(至少)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个包。当我写下here时,不要忘记删除orm部分中的auto_mapping参数!

Official documentation documentation on this subject

答案 1 :(得分:2)