首页 > 解决方案 > 缓存驱动配置

问题描述

我目前正在将 Symfony 与多个实体管理器一起使用。我按照他们的例子做了这个. 在开发和测试环境中一切正常。连接已建立,我可以随心所欲地获取、插入等数据。但后来我遇到了一个问题,我似乎无法在我的产品环境中建立与我的数据库的任何连接:当我尝试登录时,它会打印一些标准错误消息,例如“由于某些系统问题,您无法登录”。所以我检查了日志:没有。也许我需要在产品中调整我的详细程度?我找不到获得某种实际错误消息的方法。由于这个原因,我开始比较不同环境的配置。在这三种环境下,学说存在差异:测试和开发不使用任何文件来覆盖默认学说配置文件中指定的某些设置。产品可以。而且因为我在我的学说配置文件中更改了很多东西,所以问题就埋在那里似乎是合理的。我删除了 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  

这是我在 prod 环境中的附加教义.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

prod 环境的配置文件对应的是默认配置文件。我尝试为每个实体管理器添加一次所有这些附加配置,就像我在默认配置中所做的那样(对于我的多个数据库)。但我没有工作。我实际上并不知道这个配置负责什么,但我想它被添加到默认 prod 环境是有原因的。我不只是想删除它。

我现在的问题是:

标签: symfonydoctrine

解决方案


推荐阅读