ruby - Ruby 应用程序不再能够访问远程 Heroku Postgres - 在本地安装 Postgres.app 之后
问题描述
几个月来,我的 dev't Mac 上的 ruby (sinatra) 应用程序“foo.rb”一直在使用远程 Heroku 托管的 Postgres 数据库。
该应用程序不使用任何本地数据库,无论是在开发还是生产中。
对于另一个项目,我从 Heroku 安装了 Postgress.app,首先按照建议删除了一个非常旧的版本,使用brew remove postgresql
下次我运行 foo.rb 并尝试使用 SomeModel.count 访问(远程)数据库时,我得到了错误:
PG::ConnectionBad: FATAL: no pg_hba.conf entry for host , user , database , SSL off
我很困惑为什么当数据库连接配置指向远程 postgres url 时错误显示我的 devt 机器地址,以及为什么它说 SSL 关闭。
任何想法如何摆脱错误?有什么办法可以看到它抱怨的 pg_hba.conf 的路径,所以我可以验证它是否包含正确的主机条目?
(我想知道 pg gem 是否有自己的副本隐藏在某个地方。)
我可以找到的 pg_hba.conf 副本(在旧版和新 Postgress.app 版本的 /Library/Application Support/XXXX 中)具有正确(且未更改)的主机条目。
解决方案
答案原来是:
pg
在 Gemfile 中注释掉bundle install
- 代替
pg
bundle install
我怀疑在pg
安装 gem 时,它会动态建立一些到 postgresql 的链接,所以如果你移动postgresql(就像我在安装 Postgres.app 时所做的那样),你需要删除pg
gem 然后重新添加它。
推荐阅读
- .net - 在 netstandard2.0 和 4.7.2 的解决方案中,dotnet 构建失败并出现“类型或命名空间名称...不存在”
- iphone - Flutter应用程序卡在白屏iPhoneXS上
- android - 问题将 Xamarin Forms Android 应用程序作为捆绑包发布到 Play 商店 - 文档已过期
- javascript - 如何使嵌套插槽的道具(Vue 2)可以访问父数据?
- algorithm - 砖在墙上的排列方式有几种?
- javascript - 避免 React 功能组件中的代码重复
- mysql - Sequelize 和查询 MYSQL 字面量
- javascript - 如何在 React 中从父组件访问子组件中的变量?
- javascript - 只有当开发工具打开时,Chrome 才会在错误的位置触发拖动事件
- c# - 如何在 C# 中使用嵌套的 json 对象