我在Symfony config.yml中设置了两个MySQL连接:
doctrine:
dbal:
default_connection: default
connections:
default: __VARIABLES
dealer: __VARIABLES
我知道我可以通过以下方式检索某些连接中的对象:
$this->get('doctrine')->getEntityManager('dealer');
我的问题是 - 有没有办法设置与某个实体的连接,所以doctrine:schema:update
同步只在集合连接的范围内完成?
答案 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”实体管理器。