繁体   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