Dbal: Some console commands should (probably) work without a DB connection

Created on 9 Jun 2016  Â·  11Comments  Â·  Source: doctrine/dbal

In adding some proxy-generation to my docker build, I noticed generate proxies "php vendor/bin/doctrine orm:generate-proxies" requires a fully valid database connection, even though it doesn't actually use it in any way.

In order to get offline docker builds working, I had to generate a separate, sqlite DB connection, which is pretty inconvenient.

There should be a few commands, like proxy gen, that don't require an actual connection to a DB. Would be good to have that work more simply.

Can't Fix Duplicate Platform Detection Platforms

Most helpful comment

If the platform version is given, then the connection stays lazy.

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On Tue, Mar 13, 2018 at 6:41 PM, Oscar Fanelli notifications@github.com
wrote:

Same problem here, I would like to generate proxies during the build of a
Docker image, and obviously there is no sql connection.

I'm using ZF2 with doctrine/orm: 2.5.x.

I tried with server_version, but nothing change. Maybe is there something
else that is trying to connect?

This is the full log:

In AbstractMySQLDriver.php line 108:

[Doctrine\DBAL\Exception\ConnectionException]
An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or dir
ectory

Exception trace:
Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:176
Doctrine\DBAL\DBALException::wrapException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:161
Doctrine\DBAL\DBALException::driverException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 47:

[Doctrine\DBAL\Driver\PDOException (2002)]
SQLSTATE[HY000] [2002] No such file or directory

Exception trace:
Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 43:

[PDOException (2002)]
SQLSTATE[HY000] [2002] No such file or directory

Exception trace:
PDO->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/dbal/issues/2409#issuecomment-372754718, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJakHd181ib1zzwDDlGga1VZe2jyTRfks5teATggaJpZM4IyPkS
.

All 11 comments

This is the same issue as https://github.com/doctrine/DoctrineBundle/issues/351, as far as I know.

In order to avoid having a connection being created at each EntityManager::create() call, you will need to specify the platform version as connection parameter.

Note that if the version isn't specified, the connection will be initiated when retrieving the database platform (auto-detection), and that can't be avoided because we need a platform instance throughout the ORM in order to generate SQL during persistence operations (before actually connecting to the DB).

@Ocramius Could you describe further? I have no problem specifying any params it needs to not need the connection, it's just unclear how to do that. Is that just in the connection creation? (Along with e.g. driver options?)

If that's the case, I'll probably need to keep sqlite for now, because bumping that whenever I actually upgrade databases would be rough :)

See https://github.com/doctrine/DoctrineBundle/issues/351#issuecomment-65771528

Specifying a platform_version in your configuration should do the trick (key depends on framework). You can also set the platform version on the configuration object.

See https://github.com/doctrine/dbal/blob/7dd848b7afdf065966daebcac3c134f90ba2bcdd/lib/Doctrine/DBAL/Connection.php#L385-L402

Same problem here, I would like to generate proxies during the build of a Docker image, and obviously there is no sql connection.

I'm using ZF2 with doctrine/orm: 2.5.x.

I tried with server_version, but nothing change. Maybe is there something else that is trying to connect?

This is the full log:

In AbstractMySQLDriver.php line 108:

  [Doctrine\DBAL\Exception\ConnectionException]                                
  An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or dir  
  ectory                                                                       


Exception trace:
 Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:176
 Doctrine\DBAL\DBALException::wrapException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:161
 Doctrine\DBAL\DBALException::driverException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47
 Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
 Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
 Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
 Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
 Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
 Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
 Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
 Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
 Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
 Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
 Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
 Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
 Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
 Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
 include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 47:

  [Doctrine\DBAL\Driver\PDOException (2002)]        
  SQLSTATE[HY000] [2002] No such file or directory  


Exception trace:
 Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
 Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
 Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
 Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
 Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
 Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
 Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
 Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
 Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
 Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
 Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
 Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
 Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
 Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
 Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
 include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 43:

  [PDOException (2002)]                             
  SQLSTATE[HY000] [2002] No such file or directory  


Exception trace:
 PDO->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
 Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
 Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
 Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
 Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
 Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
 Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
 Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
 Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
 Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
 Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
 Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
 Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
 Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
 Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
 Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
 include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

If the platform version is given, then the connection stays lazy.

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On Tue, Mar 13, 2018 at 6:41 PM, Oscar Fanelli notifications@github.com
wrote:

Same problem here, I would like to generate proxies during the build of a
Docker image, and obviously there is no sql connection.

I'm using ZF2 with doctrine/orm: 2.5.x.

I tried with server_version, but nothing change. Maybe is there something
else that is trying to connect?

This is the full log:

In AbstractMySQLDriver.php line 108:

[Doctrine\DBAL\Exception\ConnectionException]
An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or dir
ectory

Exception trace:
Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:176
Doctrine\DBAL\DBALException::wrapException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:161
Doctrine\DBAL\DBALException::driverException() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 47:

[Doctrine\DBAL\Driver\PDOException (2002)]
SQLSTATE[HY000] [2002] No such file or directory

Exception trace:
Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

In PDOConnection.php line 43:

[PDOException (2002)]
SQLSTATE[HY000] [2002] No such file or directory

Exception trace:
PDO->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
Doctrine\DBAL\Driver\PDOConnection->__construct() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:44
Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:372
Doctrine\DBAL\Connection->connect() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:432
Doctrine\DBAL\Connection->getDatabasePlatformVersion() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:396
Doctrine\DBAL\Connection->detectDatabasePlatform() at /usr/share/nginx/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:338
Doctrine\DBAL\Connection->getDatabasePlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763
Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:616
Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174
Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:333
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:217
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /usr/share/nginx/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115
Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /usr/share/nginx/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/GenerateProxiesCommand.php:73
Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand->execute() at /usr/share/nginx/vendor/symfony/console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at /usr/share/nginx/vendor/symfony/console/Application.php:946
Symfony\Component\Console\Application->doRunCommand() at /usr/share/nginx/vendor/symfony/console/Application.php:248
Symfony\Component\Console\Application->doRun() at /usr/share/nginx/vendor/symfony/console/Application.php:148
Symfony\Component\Console\Application->run() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module.php:62
include() at /usr/share/nginx/vendor/doctrine/doctrine-module/bin/doctrine-module:4

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/dbal/issues/2409#issuecomment-372754718, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJakHd181ib1zzwDDlGga1VZe2jyTRfks5teATggaJpZM4IyPkS
.

Holy banana! I wrote:

'server_version'  => 5.7,

instead of

'serverVersion'  => 5.7,

Symfony deals it differently then ZF2.

Thanks @Ocramius

The platform version will not resolve in combination with a MasterSlaveConnection, because serverVersion will be nested under the master and slaves configuration. This is not taken into account by detectDatabasePlatform

Was this page helpful?
0 / 5 - 0 ratings