簡體   English   中英

無法通過Rails連接Heroku上的現有Postgres數據庫

[英]Can't connect existing postgres database on heroku via rails

所以基本上,它可以在我的本地主機上運行,​​但是當我在終端中執行以下命令行時。

heroku run rake db:migrate 

我收到以下錯誤消息。

PG::ConnectionBad: could not connect to server: Connection timed out
Is the server running on host "XX.XX.XX.XX" and accepting
TCP/IP connections on port XXXX?

這是我在我的一個控制器上使用的索引方法

def index
  sql = "Select * from api.customer"
  @examples = ActiveRecord::Base.connection.execute(sql)
  render json: @examples
end

database.yml文件development: adapter: postgresql encoding: utf8 url: <%= ENV['DATABASE_URL'] %> pool: 10

production: adapter: postgresql encoding: utf8 url: <%= ENV['DATABASE_URL'] %> pool: 10

我在database.yml文件中包含了數據庫信息(主機,端口,數據庫名稱,用戶名,密碼)。 關於數據庫信息的一切都是正確的,因為我在詢問之前進行了多次檢查。 我的主機是ip地址的格式。 我還用pgadmin 3檢查了數據庫,並且服務器配置(pg_hba.conf和postgresql.conf)對所有IP地址都是開放的。 (0.0.0.0/0 md5並收聽“ *”)請告知操作方法。

謝謝!

在Rails中, DATABASE_URL ENV var優先於在database.yml輸入的任何值。

Heroku通過DATABASE_URL ENV var設置Rails數據庫(Heroku使用術語config vars完全相同)。 當buildpack在附加postgres插件后檢測到您正在部署Rails應用程序時,它將自動執行此操作。

要連接到另一個數據庫,您需要更改DATABASE_URL

heroku config:set DATABASE_URL=postgresql://xxx.xxx.xxx/myapp

看到:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM