2012-09-11 75 views
1

我有两个MySQL连接在我的Symfony config.yml设置:的Symfony2/Doctrine2 - 关联实体某些连接

doctrine: 
    dbal: 
     default_connection: default 
     connections: 
      default: __VARIABLES 
      dealer: __VARIABLES 

我知道我可以通过检索某些连接对象: $this->get('doctrine')->getEntityManager('dealer');

我问题是 - 是否有办法将连接设置为某个实体,因此doctrine:schema:update同步仅在设置连接的范围内完成?

回答

3

是 - 您可以在实体经理部分指定实体经理的责任。您可以使用“dir”选项来实现此目的。您必须禁用auto_mapping选项并告诉Doctrine哪些实体与哪个实体管理器相关。例如:

doctrine: 
    dbal: 
     (...) 

    orm: 
     auto_generate_proxy_classes: %kernel.debug%   
     default_entity_manager: default 
     entity_managers: 
      default: 
       connection:  default 
       mappings:      
        CompanySomeBundle: 
         dir: Entity/BaseEntity/ 

      secondem: 
       connection:  second_connection 
       mappings:     
        CompanySomeBundle: 
         dir: Entity/AdditionalEntity/ 

在在BaseEntity DIR每个实体属于“默认”他们,并从AdditionalEntity DIR这些实体属于“secondem”实体管理器。