2012-08-14 62 views
0

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

我的问题是每次当我想查看不同的应用程序时,我必须更改我的数据库(我在parameters.ini文件中)或者有另一种方法?

回答

4

基本上,你必须定义(至少)每个数据库1周的EntityManager AND(至少)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