我有以下问题:我有一个核心数据库,其中包含将登录信息保存到其他数据库的Doctrine实体。每个注册到我的应用程序的客户端都会得到他自己的数据库。我使用子域来确定必须使用哪个数据库。客户端数据库包含其他Doctrine实体,以保存客户端的数据。
为了根据子域确定数据库,我检查了Symfony 2:多个动态数据库连接和http://knpuniversity.com/screencast/question-answer-day/symfony2-dynamic-subdomains。我试过提问者的解决方案和答案的解决方案。给定的解决方案有效,但只适用于某一部分。我创建了一个服务,以便能够在Controller中的数据库之间切换,但是当我创建一个新实体时,Symfony总是希望在主数据库上执行create。
我想让Doctrine把表划分到数据库上。我也尝试过注释,但我无法让它起作用。是否有人对如何将实体分离并放入不同的数据库有建议?理想情况下,我应该能够定义每个实体要使用的数据库。
附加信息:
Symfony 2.3
学说2
发布于 2013-11-01 09:16:05
如果您有动态数据库,则可能连接到第二个实体管理器(用于ex dynamic):
doctrine:
dbal:
connections:
default:
# default configuration
dynamic:
# placeholder used to replace connection information
orm:
entity_managers:
default:
connection: default
dynamic:
connection: dynamic
mappings:
MyBundle:
type: annotation
dir: DynamicEntity # for ext \My\MyBundle\DynamicEntity\Item class下一次节省:
$em = $this->get('doctrine')->getManager('dynamic');
$em->persist(new \My\MyBundle\DynamicEntity\Item());
$em->flush();您必须回顾关于eneity管理器映射配置(更多见symfony 2文档)的内容。没有这一点,您将能够将每个实体放入两个数据库中。
https://stackoverflow.com/questions/19703599
复制相似问题