基本上,它正在我的localhost上运行,但是当我在终端中执行以下命令行时。
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并收听'*')请告知如何做。
谢谢!
答案 0 :(得分:0)
在Rails中,DATABASE_URL
ENV var优先于database.yml
中输入的任何值。
Heroku通过DATABASE_URL
ENV var设置Rails数据库(Heroku使用术语配置变量,这是完全相同的事情)。当buildpack在附加postgres插件后检测到您正在部署rails应用程序时,它会自动执行此操作。
要连接到其他数据库,您需要更改DATABASE_URL
:
heroku config:set DATABASE_URL=postgresql://xxx.xxx.xxx/myapp
请参阅: