我在database.yml中有以下内容
production:
adapter: postgresql
database: dbname
host: host.compute-1.amazonaws.com
username: user
password: pass_word
DATABASE_URL: postgres://user:pass_word@host.compute-1.amazonaws.com:5432/dbname
然而在git push heroku master上,我收到以下错误。
could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
我是否还需要对其他环境进行更改?
答案 0 :(得分:3)
heroku在部署时自动生成database.yml
。
您需要.git忽略database.yml
您可以通过设置ENV['DATABASE_URL'] (use heroku config:add DATABASE_URL=....)
有关详细信息,请查看heroku documentation
答案 1 :(得分:0)
不需要DATABASE_URL。或者你可以查看这个http://railsapps.github.io/rails-heroku-tutorial.html
答案 2 :(得分:0)
此错误
could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
在推送期间发出,因为默认情况下Rails会自动编译预编译资产,其中一部分是Rails尝试连接到数据库。在构建期间,您的应用程序配置不存在,因此Rails尝试回退到使用localhost(不存在)的默认值。
有几种方法可以阻止这种情况发生。一个(建议的方式)是设置
config.assets.initialize_on_precompile = false
在production.rb
。
第二种方法是启用user-env-compile
实验室功能,使您的PG配置在构建时存在。
$ heroku labs:enable user-env-compile -a <YOUR_APP_NAME>