как подключиться к другой базе данных в symfony кроме настроенной - PullRequest
0 голосов
/ 10 мая 2019

Я хочу подключиться к другой базе данных и / или создать новую в Symfony. Как я могу это сделать и в то же время получить доступ к его таблицам?

Я искал, как это сделать внутри приложения

php bin/console doctrine:query:sql 'SELECT * FROM product'

но не смог найти ответа.

Ответы [ 3 ]

1 голос
/ 10 мая 2019

Вы не можете создать базу данных напрямую из Symfony, но вы можете использовать Миграции для создания таблиц. Если вы хотите, вы можете даже сгенерировать Миграции, используя bin/console и doctrine:migrations:diff для генерации миграций на основе ваших Сущностей.

Для нескольких баз данных вы можете использовать Служебные контейнеры , чтобы настроить Doctrine ORM , затем в своем коде вы можете получить конкретный контейнер и создать из него учение.

Также, если вы заинтересованы в выборе, я бы посмотрел на DQL , так как это позволяет следующие решения:

// This assumes an entity called 'entity' exists.
$query = $entityManager->createQueryBuilder('entity');
return $query->getResult();
0 голосов
/ 15 мая 2019

Вам необходимо настроить несколько менеджеров сущностей, отметьте Как работать с несколькими менеджерами сущностей и соединениями .

Затем вы можете использовать команды доктрины, как показано ниже:

php bin/console doctrine:database:create --connection=<your_entity_manager_name>
php bin/console doctrine:query:sql --connection=<your_entity_manager_name>
0 голосов
/ 11 мая 2019

Посмотрите на это, должно помочь: https://symfony.com/doc/current/doctrine/multiple_entity_managers.html

Короче говоря, вы можете определить разных менеджеров сущностей, которые работают с разными соединениями с базой данных

...