我目前正在与多个实体管理器一起使用Symfony。我是按照他们的example来做的。 在开发和测试环境中一切正常。连接已建立,我可以根据需要获取,插入等数据。但是后来我遇到了一个问题,我似乎无法在生产环境中建立与数据库的任何连接:当我尝试登录时,它会显示一些标准错误消息,例如“由于某些系统问题而无法登录”。所以我检查了日志:什么都没有。也许我需要调整产品的详细程度?我找不到获取某种实际错误消息的方法。由于这个原因,我开始比较不同环境的配置。在这三种环境下,教义有不同之处:测试和开发人员不使用任何文件来覆盖默认教义配置文件中指定的某些设置。 Prod确实如此。而且由于我在我的学说配置文件中进行了很多更改,因此问题似乎就埋在了那里似乎是合理的。我删除了针对产品环境的其他准则配置文件,该文件再次按预期工作。
这是我的标准教义配置文件(dontrine.yaml):
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
default_connection: admin
connections:
admin:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_ADMIN_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
mail:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_MAIL_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
host:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_HOST_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
orm:
default_entity_manager: admin
auto_generate_proxy_classes: '%kernel.debug%'
entity_managers:
admin:
connection: admin
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
Admin:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Admin'
prefix: 'App\Entity\Admin'
alias: Admin
mail:
connection: mail
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Mail:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Mail'
prefix: 'App\Entity\Mail'
alias: Mail
host:
connection: host
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Host:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Host'
prefix: 'App\Entity\Host'
alias: Host
这是我在产品环境中添加的doctrine.yaml:
doctrine:
orm:
metadata_cache_driver:
type: service
id: doctrine.system_cache_provider
query_cache_driver:
type: service
id: doctrine.system_cache_provider
result_cache_driver:
type: service
id: doctrine.result_cache_provider
services:
doctrine.result_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.result_cache_pool'
doctrine.system_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.system_cache_pool'
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
产品环境的配置文件与默认文件相对应。我尝试为每个实体管理器一次添加所有这些其他配置,就像在默认配置中(对于我的多个数据库)所做的那样。但是我没工作。我实际上不知道此配置负责什么,但我想将它添加到默认产品环境中是有原因的。我不只是想要删除它。
我的问题是: