我想连接到另一个数据库和/或在 symfony 中创建一个新数据库。我怎样才能做到这一点,同时可以访问它的表格?
我在应用程序中寻找如何做到这一点
php bin/console doctrine:query:sql 'SELECT * FROM product'
但找不到任何答案。
你不能直接从 Symfony 创建数据库,但你可以使用Migrations来创建表。如果您愿意,您甚至可以使用bin/console和doctrine:migrations:diff生成迁移,以基于您的实体生成迁移。
对于多个数据库,您可以使用服务容器来配置Doctrine ORM,然后在您的代码中您可以获取特定容器并从那里实例化教义。
另外,如果您有兴趣进行选择,我会看看DQL,因为它允许以下解决方案:
// This assumes an entity called 'entity' exists.
$query = $entityManager->createQueryBuilder('entity');
return $query->getResult();
您需要配置多个实体管理器,检查如何使用多个实体管理器和连接。
然后您可以使用如下教义命令:
php bin/console doctrine:database:create --connection=<your_entity_manager_name>
php bin/console doctrine:query:sql --connection=<your_entity_manager_name>
看看这个,应该有帮助:https ://symfony.com/doc/current/doctrine/multiple_entity_managers.html
简而言之,您可以定义不同的实体管理器来处理不同的数据库连接