Symfony2 / Doctrine2 - 将实体关联到某个连接

时间:2012-09-11 09:26:12

标签: php symfony doctrine doctrine-orm

我在Symfony config.yml中设置了两个MySQL连接:

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

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

我的问题是 - 有没有办法设置与某个实体的连接,所以doctrine:schema:update同步只在集合连接的范围内完成?

1 个答案:

答案 0 :(得分: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目录中的每个实体都属于“默认”em,而AdditionalEntity目录中的这些实体属于“secondem”实体管理器。