Ruby 应用程序不再能够访问远程 Heroku Postgres - 在本地安装 Postgres.app 之后
Ruby app no longer able to access remote Heroku Postgres - AFTER installing Postgres.app locally
几个月来,我的 Mac 上的 ruby (sinatra) 应用程序 "foo.rb" 一直在使用远程 Heroku 托管的 Postgres 数据库。
该应用程序不使用任何本地数据库,无论是在开发还是生产中。
对于另一个项目,我从 Heroku 安装了 Postgress.app,首先使用 brew remove postgresql
删除了推荐的非常旧的版本
下次我 运行 foo.rb 并尝试使用 SomeModel.count 访问(远程)数据库时,我收到错误:
PG::ConnectionBad:致命:没有 pg_hba.conf 主机、用户、数据库条目,SSL 关闭
我很困惑为什么当数据库连接配置指向远程 postgres url 时错误显示我的开发机器地址,以及为什么它说 SSL 关闭。
有什么想法可以消除错误吗?有什么方法可以查看它所抱怨的 pg_hba.conf 的路径,以便我可以验证它是否包含正确的主机条目?
(我想知道 pg gem 是否有自己的副本藏在某个地方。)
我能找到的 pg_hba.conf 的副本(在 /Library/Application Support/XXXX 中,新旧 Postgress.app 版本)具有正确的(且未更改的)主机条目。
您的脚本似乎正在尝试连接未正确配置的地方
这种情况下需要检查的事项:
您的 database.yml 或连接字符串,DATABASE_URL 与来自 postgres.app
的本地主机匹配
是你的 postgres.app 是 运行 并且有一个数据库服务器 运行(检查你的 osx 顶部栏上的大象图标)
您正确安装并配置了 postgres 应用程序您需要设置路径,您可以通过在新终端中输入 psql 来检查 window,如果它运行是好的。
Configure your $PATH to use the included command line tools (optional):
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
- post问题中你的文件或其中的一部分,对调试有很大帮助:)
答案竟然是:
- 在 Gemfile
中注释掉 pg
bundle install
- 替换
pg
bundle install
我怀疑 gem pg
安装时,它 动态地 建立一些 link 到 postgresql,所以如果你 移动 postgresql(就像我安装Postgres.app时所做的那样)你需要删除pg
gem然后重新添加它。
几个月来,我的 Mac 上的 ruby (sinatra) 应用程序 "foo.rb" 一直在使用远程 Heroku 托管的 Postgres 数据库。
该应用程序不使用任何本地数据库,无论是在开发还是生产中。
对于另一个项目,我从 Heroku 安装了 Postgress.app,首先使用 brew remove postgresql
下次我 运行 foo.rb 并尝试使用 SomeModel.count 访问(远程)数据库时,我收到错误:
PG::ConnectionBad:致命:没有 pg_hba.conf 主机、用户、数据库条目,SSL 关闭
我很困惑为什么当数据库连接配置指向远程 postgres url 时错误显示我的开发机器地址,以及为什么它说 SSL 关闭。
有什么想法可以消除错误吗?有什么方法可以查看它所抱怨的 pg_hba.conf 的路径,以便我可以验证它是否包含正确的主机条目?
(我想知道 pg gem 是否有自己的副本藏在某个地方。)
我能找到的 pg_hba.conf 的副本(在 /Library/Application Support/XXXX 中,新旧 Postgress.app 版本)具有正确的(且未更改的)主机条目。
您的脚本似乎正在尝试连接未正确配置的地方
这种情况下需要检查的事项:
您的 database.yml 或连接字符串,DATABASE_URL 与来自 postgres.app
的本地主机匹配
是你的 postgres.app 是 运行 并且有一个数据库服务器 运行(检查你的 osx 顶部栏上的大象图标)
您正确安装并配置了 postgres 应用程序您需要设置路径,您可以通过在新终端中输入 psql 来检查 window,如果它运行是好的。
Configure your $PATH to use the included command line tools (optional):
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
- post问题中你的文件或其中的一部分,对调试有很大帮助:)
答案竟然是:
- 在 Gemfile 中注释掉
bundle install
- 替换
pg
bundle install
pg
我怀疑 gem pg
安装时,它 动态地 建立一些 link 到 postgresql,所以如果你 移动 postgresql(就像我安装Postgres.app时所做的那样)你需要删除pg
gem然后重新添加它。