2015-12-01 12 views
25

her veritabanı bağlantısı.Symfony'nin 2.7 cache: berrak komut kontrolleri Sadece 2.7 Symfony'de ve rahatsız edici davranışa sahip geçiş yapan

Benim config.yml'deki bazı bağlantılar, opsiyoneldir ve her ürün örneğinde kullanılması amaçlanmayan yabancı veritabanlarını tanımlar.

Önbellek yapılırken: açık, belli bir sunucuda etkin olmalarını istemesem bile şimdi her bağlantı kontrol ediliyormuş gibi görünüyor. no-ısınma seçeneği ayarlarken

, sorun yarısı bir zamanda gerçekleşir

php app/console cache:clear --env=prod --no-warmup --verbose 

[Doktrin \ DBal \ İstisna \ ConnectionException] sürücüsünde meydana
istisna: sqlstate [42000] [1049] Bilinmeyen veritabanı 'bal_syncrho_database'

durum izleme:() /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:103 Doctr de ine \ DBAL \ Driver \ AbstractMySQLDriver-> convertException() /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:133 Doctrine \ DBAL \ DBALException :: driverException() /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:47 Doctrine \ DBAL \ Driver \ PDOMySql \ Driver-> connect() /var/www adresinde /ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:360 Doctrine \ DBAL \ Connection-> connect() /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php: 429 Doctrine \ DBAL \ Connection-> getDatabasePlatformVersion() /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:389 Doctrine \ DBAL \ Connection -> detectDatabasePlatform () /var/www/ror3/satıcı/doktrini de /var/www/ror3/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:328 doktrini \ DBal \ Bağlantısı-> getDatabasePlatform() de /orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:763 doktrini \ orm \ eşleme \ ClassMetadataFactory-> getTargetPlatform() en /var/www/ror3/satıcı/öğreti/orm/lib/öğreti/orm/Eşleme/ClassMetadataFactory.php: 616 Öğreti \ orm \ eşleme \ ClassMetadataFactory-> completeIdGeneratorMapping() /var/www/ror3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:174 de Doctrine \ ORM \ Mapping \ ClassMetadataFactory-> doLoadMetadata() /var/www/ror3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Abstrac tClassMetadataFactory.php: 332 Doktrin \ Common \ Sebat \ Mapping \ AbstractClassMetadataFactory-> loadMetadata() /var/www/ror3/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78 de Doctrine \ ORM \ Mapping \ ClassMetadataFactory-> loadMetadata() /var/www/ror3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216 Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory-> getMetadataFor() /var/www/ror3/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:115 Doktrin \ Common \ Sebat \ Mapping de \ AbstractClassMetadataFactory-> getAllMetadata() de/var/www/ror3/satıcı/symfony/symfony/src/Symfony'nin/Köprü/Doktrini/CacheWarmer/ProxyCacheWarmer.php: /var/www/ror3/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php:48 Symfony'de de 69 Symfony \ Köprüsü \ Doktrini \ CacheWarmer \ ProxyCacheWarmer-> WARMUP() \ Bileşen \ HttpKernel \ CacheWarmer \ CacheWarmerAggregate-> warmUp() /var/www/ror3/app/bootstrap.php.cache:2641 Symfony \ Bileşen \ HttpKernel \ Kernel-> initializeContainer() /var/www adresinde /ror3/app/bootstrap.php.cache:2411 Symfony \ Component \ HttpKernel \ Kernel-> boot() /var/www/ror3/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Konsol/Uygulama.php: 70 Symfony \ Bundle \ FrameworkBundle \ Console \ Application-> doRun() /var/www/ror3/vendor/symfony/symfony/src/Symfony/Bileşen/Konsol E/Application.php: 120 Symfony \ Component \ Konsol \ Uygulama-> run()
/var/www/ror3/app/konsolunda: 27

cevap

59

Doktrin Veritabanı Platformu Versiyon belirlemeye çalışıyor .

Bu davranışı, sunucu sürümüne Doctrine DBAL Configuration ekleyerek engelleyebilirsiniz.

server_version seçeneği DoctrineBundle 1.3 tarafından kullanılan olan Doktrin DBal 2.5, şunlar eklenmiştir: doc itibaren. Bu seçeneğin değeri, veritabanı sunucunuzun sürümüyle eşleşmelidir (MySQL sürümünüzü almak için PostgreSQL sürümünüzü ve mysql -V öğelerini bulmak için postgres -V veya psql -V komutunu kullanın). Bu seçeneği tanımlamak yoksa ve henüz veritabanını oluşturmadıysanız Doktrini otomatik veritabanı sunucusu sürümünü tahmin etmeye çalışacağız ve hiçbiri mevcut çünkü

, sen PDOException hataları alabilirsiniz. Örnek olarak

:

#config.yml 

doctrine: 
    dbal: 
    ... 
     server_version:  5.6 

Umut bu yardım

+2

Çok teşekkürler. Günümü kurtardın. AWS ElastiBeanstalk kullanıyorum ve bu seçenek çok yararlı. – Strabek

+0

Bugünümü kurtardım, teşekkürler! –

+0

teşekkürler @FlorentDestremau hoş geldiniz! – Matteo