缓存驱动程序配置

时间:2018-07-08 13:14:52

标签: symfony doctrine

我目前正在与多个实体管理器一起使用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

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

我的问题是:

  • 如何正确扩展其他配置?
  • 这种配置有什么意义?

0 个答案:

没有答案