Rails开发环境试图连接到AWS数据库,而不是localhost的PostgreSQL

时间:2017-02-13 11:15:15

标签: ruby-on-rails postgresql amazon-web-services

我有一个现有的Rails应用程序,它以前在我的本地笔记本电脑(运行OSX)上成功运行,数据库存储在PostgreSQL本地。我还成功地将Rails应用程序部署到Elastic Beanstalk和RDS中的数据库 - 托管网站仍在运行。

我几个月没有触及localhost版本并尝试使用rails server -e development启动它,但是按照惯例访问http://localhost:3000/时,我收到PG错误消息

  

PG :: ConnectionBad at / FATAL:用户密码验证失败   " murjfphxxxxxx"致命:主机" 115.x.x.x"没有pg_hba.conf条目,   用户" murjfphxxxxxx",数据库" d37vsvehxxxxxx",SSL关闭

Rails控制台中抛出了同样的错误。似乎开发版本正在尝试连接到AWS数据库,而不是localhost数据库,但我无法弄清楚原因。

/config/database.yml将开发环境列为:

development: adapter: postgresql encoding: unicode database: <my-app>_development host: localhost pool: 5 username: postgres password: <password>

我可以通过PSQL连接到localhost PG数据库并查看内容,因此看起来localhost PG数据库是有效的。

为什么开发环境会尝试连接到AWS版本的数据库?如果您需要任何进一步的信息来调试,请告诉我。

使用ruby-2.3.1,Rails 4.2.0,PostgreSQL 9.6.0.0

1 个答案:

答案 0 :(得分:2)

你的环境中可能有DATABASE_URL。您可以在终端输入env | grep DATABASE_URL进行检查。

如果有,请尝试使用unset DATABASE_URL取消设置。

正如documentation所说:

  

如果您同时设置了config/database.ymlENV['DATABASE_URL']   Rails会将配置合并在一起。为了更好地理解这一点   我们必须看一些例子。

     

当环境提供重复的连接信息时   变量优先。