Ruby应用程序不再能够访问远程Heroku Postgres-在本地安装Postgres.app之后

时间:2019-02-05 20:45:11

标签: ruby postgresql heroku postgres.app

几个月以来,我的开发者Mac上的ruby(sinatra)应用程序“ foo.rb”一直在使用远程Heroku托管的Postgres数据库。

该应用程序在开发或生产中均不使用任何本地数据库。

对于另一个项目,我从Heroku安装了Postgress.app,首先按照建议使用brew remove postgresql

删除了一个非常旧的版本。

下一次我运行foo.rb并尝试使用SomeModel.count访问(远程)数据库时,出现错误:

PG :: ConnectionBad:严重:没有host,user,database,SSL禁用的pg_hba.conf条目

我很困惑为什么当数据库连接配置指向远程postgres url时错误显示我的devt机器地址,以及为什么说SSL关闭。

有什么想法如何消除错误?有什么方法可以查看它抱怨的pg_hba.conf的路径,因此我可以验证它是否包含正确的主机条目?

(我想知道pg宝石是否有自己的副本被藏在某个地方。)

我可以找到的pg_hba.conf副本(在旧的和新的Postgress.app版本的/ Library / Application Support / XXXX中)都具有正确的(且未更改的)主机条目。

2 个答案:

答案 0 :(得分:0)

您的脚本似乎试图连接未正确配置的地方

在这种情况下要检查的东西:

  1. 您的database.yml或连接字符串,DATABASE_URL匹配postgres.app中的本地主机

  2. 您的postgres.app是否正在运行并且正在运行数据库服务器(请检查osx顶部栏上的大象图标)

  3. 您已正确安装和配置了需要设置路径的postgres应用,可以在新的终端窗口中键入psql进行检查,如果可以运行的话。

  

配置$ PATH以使用随附的命令行工具(可选):

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
  1. 将您的文件或文件的一部分发布到问题中,这对调试很有帮助:)

答案 1 :(得分:0)

答案是:

  1. 在Gemfile中注释.Revenue
  2. pg
  3. 替换bundle install
  4. pg

我怀疑安装了gem bundle install时,它会动态地建立到postgresql的链接,因此如果您 move 迁移了postgresql(就像我安装时所做的那样) Postgres.app),则需要删除pg宝石,然后重新添加。