php - 连接到不同服务器上的多个数据库
问题描述
我已经将 Symfony 与 Doctrine 一起使用了一段时间,到目前为止,我能够通过 config.yml 配置 Doctrine 以连接到同一服务器(IP)上的多个数据库。
但现在我有一个不同的场景。
我正在处理一个案例,该案例有多个项目在不同的 IP 地址上运行。我可以连接在也托管主应用程序的机器上本地运行的数据库,但现在我需要连接到托管在另一台服务器上的另一个数据库。因此,要布置这种情况:
- 服务器阿尔法。IP:193.15.15.15,数据库名称:“Foo”
- 服务器测试版。IP:193.15.15.16,数据库名称:“酒吧”
我已经在我的 parameters.yml 中为每个数据库定义了用户和密码,所以这没什么大不了的。我只是想知道是否可以连接到服务器 Beta 上的(本地托管)数据库,而应用程序位于服务器 Alpha 上。
提前致谢!
解决方案
您应该在文件 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
推荐阅读
- swiftui - SwiftUI 聊天应用:反向列表和上下文菜单的困境
- rust - 如何引用结构实例方法
- python - 如何为python中的所有子图设置相同的xtick?
- google-cloud-platform - 如何为使用 gRPC 运行的谷歌云设置 jwcrypto 令牌颁发者?
- php - 从 woocommerce 管理订单详细信息页面隐藏订单产品
- html - DinkToPdf - 一个 pdf 页面上的 HTML div
- amazon-web-services - 从 Lambda 连接 Cognito 以获得客户端凭证授权
- python - 在 pandas 中使用每周聚合过滤器
- wordpress - 通过 url 访问 WordPress 上传目录显示 403 错误消息
- php - 如何在 php curl 的 cookie 中设置 JSESSIONID?