首页 > 解决方案 > 连接到不同服务器上的多个数据库

问题描述

我已经将 Symfony 与 Doctrine 一起使用了一段时间,到目前为止,我能够通过 config.yml 配置 Doctrine 以连接到同一服务器(IP)上的多个数据库。

但现在我有一个不同的场景。

我正在处理一个案例,该案例有多个项目在不同的 IP 地址上运行。我可以连接在也托管主应用程序的机器上本地运行的数据库,但现在我需要连接到托管在另一台服务器上的另一个数据库。因此,要布置这种情况:

我已经在我的 parameters.yml 中为每个数据库定义了用户和密码,所以这没什么大不了的。我只是想知道是否可以连接到服务器 Beta 上的(本地托管)数据库,而应用程序位于服务器 Alpha 上。

提前致谢!

标签: phpdatabasesymfonydoctrine

解决方案



您应该在文件 config.yml 上配置多个实体管理器和连接:

doctrine:
     dbal:
         default_connection: default
         connections:
            default:
                driver:   pdo_mysql
                host:     '193.15.15.15'
                port:     '%port_parameter_for_foo%'
                dbname:   'Foo'
                user:     '%user_parameter_for_foo%'
                password: '%pass_parameter_for_foo%'
                charset:  UTF8
            customer:
                driver:   pdo_mysql
                host:     '193.15.15.16'
                port:     '%port_parameter_for_bar%'
                dbname:   'Bar'
                user:     '%user_parameter_for_bar%'
                password: '%pass_parameter_for_bar%'
                charset:  UTF8

    orm:
        default_entity_manager: default
        entity_managers:
            default:
                connection: default
                mappings:
                    BundleOnAlpha:  ~
            customer:
                connection: beta
                mappings:
                    BundleOnBeta: ~

文档更完整: https ://symfony.com/doc/3.4/doctrine/multiple_entity_managers.html


推荐阅读