Динамически сгенерированное соединение с базой данных в symfony - PullRequest
0 голосов
/ 22 апреля 2020

Я нахожусь в ситуации, когда мне нужно подключиться ко многим базам данных. Изменяется только имя_базы_данных, но баз данных так много, что мне нужно подключаться к ним динамически. Я попытался сделать это следующим образом:

$dataBaseToCreate = "Test";
//Here is some code which creates database "TEST"
...

$filename = __DIR__.'/../SQL/test.sql';
        $em = $this->createManager($databaseToCreate);
        $sql = file_get_contents($filename);
        $query = $em->getConnection()->prepare($sql);
        $query->execute();
        $em->flush();
public function createManager($dbname)
    {
        $isDevMode = false;
        $config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
        // or if you prefer yaml or XML
        //$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode);
        //$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode);

        $conn = [
            'driver' => 'pdo_mysql',
            'username' => 'foo',
            'password' => 'foo',
            'dbname' => $dbname
        ];

        // obtaining the entity manager
        return EntityManager::create($conn, $config);
    }

Bu, в результате: «Произошло исключение в драйвере: SQLSTATE [HY000] [2002] Нет такого файла или каталога». строка:

        $query = $em->getConnection()->prepare($sql);

Этот код основан на данном решении: { ссылка }

что я сделал не так? $ sql содержит все содержимое файла SQL.

...