0

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

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

4

2 回答 2

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 个包。正如我在这里写的,不要忘记删除auto_mappingorm 部分中的参数!

有关此主题的官方文档文档

于 2012-08-14T13:22:07.790 回答
2

这可能是有用的建议如何实现这个http://www.theodo.fr/blog/2011/09/symfony2-working-with-multiple-databases/

于 2012-08-14T12:03:14.783 回答