gpt4 book ai didi

php - 使用 Symfony2 和 Doctrine2 进行动态数据库选择

转载 作者:可可西里 更新时间:2023-11-01 08:48:55 26 4
gpt4 key购买 nike

我遇到了以下问题:我有一个包含 Doctrine Entities 的核心数据库,这些实体将我的登录信息保存到其他数据库。每个注册到我的应用程序的客户都将获得自己的数据库。我使用子域来确定必须使用哪个数据库。客户端数据库包含其他 Doctrine 实体,以保留客户端的数据。

要根据子域确定数据库,我检查了 Symfony 2 : multiple and dynamic database connectionhttp://knpuniversity.com/screencast/question-answer-day/symfony2-dynamic-subdomains .我已经尝试了提问者的解决方案和答案的解决方案。给定的解决方案有效,但仅适用于一部分。我创建了一个服务,以便能够在 Controller 中的数据库之间切换,但是当我创建一个新的实体时,Symfony 总是希望在主数据库上执行 CREATE TABLE。

我希望 Doctrine 在数据库上划分表格。我也试过注释,但我无法让它工作。有没有人对如何分离实体并将它们放在不同的数据库中有建议?理想情况下,我应该能够定义每个实体要使用的数据库。

附加信息:

交响乐 2.3

原则 2

最佳答案

如果你有动态数据库,可能连接到第二个实体管理器(对于前动态):

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 管理器映射配置的信息 (more in symfony 2 documentation)。如果没有这个,您将能够将每个实体放入两个数据库中。

关于php - 使用 Symfony2 和 Doctrine2 进行动态数据库选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com