如何在symfony中连接到另一个数据库,而不是已配置的数据库

时间:2019-05-10 19:11:11

标签: php symfony doctrine

我想连接到另一个数据库和/或在symfony中创建一个新数据库。我该怎么做,同时访问它的表?

我正在寻找如何在应用程序中执行此操作

has_subclass(_, _).

但找不到任何答案。

3 个答案:

答案 0 :(得分:1)

您不能直接从Symfony创建数据库,但是可以使用Migrations创建表。 如果需要,您甚至可以使用bin/consoledoctrine:migrations:diff生成迁移,以根据您的实体生成迁移。

对于多个数据库,您可以使用Service Containers来配置Doctrine ORM,然后在代码中可以获取特定的容器并从那里实例化学说。

此外,如果您对选择感兴趣,我会看看DQL,因为它允许如下解决方案:

// This assumes an entity called 'entity' exists.
$query = $entityManager->createQueryBuilder('entity');
return $query->getResult();

答案 1 :(得分:0)

看看这个,应该有帮助:https://symfony.com/doc/current/doctrine/multiple_entity_managers.html

简而言之,您可以定义不同的实体管理器来处理不同的数据库连接

答案 2 :(得分:0)

您需要配置多个实体管理器,选中How to Work with multiple Entity Managers and Connections

然后您可以使用以下教义命令:

php bin/console doctrine:database:create --connection=<your_entity_manager_name>
php bin/console doctrine:query:sql --connection=<your_entity_manager_name>