1

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

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

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

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

4

1 回答 1

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”实体管理器。

于 2012-09-11T10:45:02.937 回答