【发布时间】:2017-07-01 08:37:29
【问题描述】:
我有一个现有的 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
【问题讨论】:
-
你有没有试过运行
rails s RAILS_ENV=development来看看它是否使用了正确的环境? -
@Coolness 抱歉,我想说的是我已经尝试过了——我已经编辑了这个问题。对结果没有影响
-
你的环境中有
DATABASE_URLvar吗? (可以在终端输入env | grep DATABASE_URL查看) -
@esse 宾果游戏!你想把它作为答案,我会接受。非常感谢
标签: ruby-on-rails postgresql amazon-web-services