[英]Rails development environment trying to connect to AWS database, not localhost's PostgreSQL
我有一個現有的 Rails 應用程序,它以前在我的本地筆記本電腦(運行 OSX)上成功運行,數據庫本地存儲在 PostgreSQL 中。 我還使用 RDS 中的數據庫成功地將 Rails 應用程序部署到 Elastic Beanstalk - 托管站點仍在運行。
我已經幾個月沒有接觸 localhost 版本了,今天嘗試使用rails server -e development
啟動它,但是當像往常一樣訪問http://localhost:3000/ 時,我收到一條 PG 錯誤消息
PG::ConnectionBad at / FATAL:用戶“murjfphxxxxxx”的密碼驗證失敗致命:主機“115.xxx”、用戶“murjfphxxxxxx”、數據庫“d37vsvehxxxxxx”、SSL 關閉沒有 pg_hba.conf 條目
在 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
您的環境中可能有DATABASE_URL
。 您可以通過輸入env | grep DATABASE_URL
來檢查終端中的env | grep DATABASE_URL
。
如果是這樣,請嘗試使用unset DATABASE_URL
。
正如文檔中所說:
如果您同時設置了
config/database.yml
和ENV['DATABASE_URL']
那么 Rails 會將配置合並在一起。 為了更好地理解這一點,我們必須看一些例子。當提供重復的連接信息時,環境變量將優先。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.