Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symfony requires database connection on cache:clear prod #37473

Closed
fabioaraujopt opened this issue Jul 1, 2020 · 2 comments
Closed

Symfony requires database connection on cache:clear prod #37473

fabioaraujopt opened this issue Jul 1, 2020 · 2 comments

Comments

@fabioaraujopt
Copy link

Hello,

I'm doing the console command
APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear
in the github actions pipeline in order to warm up the cache of the deployment package.

However, the command fails due to the SQL connection timeout.

Should this warmup try to connect to the database?

The trace of the error is the following:

In PDOConnection.php line 27:

  [PDOException (1045)]
  SQLSTATE[HY000] [1045] Access denied for user 'admin'@'87-196-72-126.net.novis.pt' (using password: YES)  


Exception trace:
  at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27
 PDO->__construct() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27
 Doctrine\DBAL\Driver\PDOConnection->__construct() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOMySql\Driver.php:22
 Doctrine\DBAL\Driver\PDOMySql\Driver->connect() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php:362
 Doctrine\DBAL\Connection->connect() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php:428
 Doctrine\DBAL\Connection->getDatabasePlatformVersion() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php:388
 Doctrine\DBAL\Connection->detectDatabasePlatform() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php:330
 Doctrine\DBAL\Connection->getDatabasePlatform() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php:795
 Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php:622    
 Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php:165
 Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\AbstractClassMetadataFactory.php:306
 Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php:81
 Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\AbstractClassMetadataFactory.php:185
 Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\AbstractClassMetadataFactory.php:91
 Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\doctrine-bridge\CacheWarmer\ProxyCacheWarmer.php:67
 Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer->warmUp() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\http-kernel\CacheWarmer\CacheWarmerAggregate.php:98
 Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate->warmUp() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\http-kernel\Kernel.php:572
 Symfony\Component\HttpKernel\Kernel->initializeContainer() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\http-kernel\Kernel.php:131
 Symfony\Component\HttpKernel\Kernel->boot() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\http-kernel\Kernel.php:148
 Symfony\Component\HttpKernel\Kernel->reboot() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\framework-bundle\Command\CacheClearCommand.php:194
 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->warmup() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\framework-bundle\Command\CacheClearCommand.php:134        
 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->execute() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\console\Command\Command.php:258
 Symfony\Component\Console\Command\Command->run() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\console\Application.php:929
 Symfony\Component\Console\Application->doRunCommand() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\framework-bundle\Console\Application.php:96
 Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\console\Application.php:264
 Symfony\Component\Console\Application->doRun() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\framework-bundle\Console\Application.php:82
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at C:\Users\fuj\Documents\webprojects\symfony-docker\vendor\symfony\console\Application.php:140
 Symfony\Component\Console\Application->run() at C:\Users\fuj\Documents\webprojects\symfony-docker\bin\console:43```
@dmaicher
Copy link
Contributor

dmaicher commented Jul 1, 2020

Related: #16587

I think specifying the database version in the Doctrine config will prevent this

@fabioaraujopt
Copy link
Author

Thanks for your comment!

I changed the .env file.

from this

(...)

DATABASE_URL=mysql://<user>:<password>@<URL>:<port>

(...)

to this

(...)

DATABASE_URL=mysql://<user>:<password>@<URL>:<port>?serverVersion=<mysql_version>

(...)

worked like a charm!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants