Rails忽略了关于我的Heroku PostgreSQL DB的database.yml细节

时间:2015-04-13 05:56:18

标签: ruby-on-rails ruby-on-rails-3 postgresql heroku

我在Heroku上有一个Rails应用程序,由于某种原因,我在部署它时无法连接到我的生产数据库。似乎忽略了我在database.yml上输入的任何内容。

此数据库不是此特定Heroku应用程序的附加组件,而是另一个应用程序。但是,下面的数据库连接详细信息是正确的。

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
   adapter: postgresql
   encoding: unicode
   database: asdfasdfasdf # [HIDDEN]
   pool: 5
   host: ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com
   username:  asdfasdfasdf # [HIDDEN]
   port:       5432
   password:  asdfasdfasdfasdfasdfasdf # [HIDDEN]
   timeout: 5000

2 个答案:

答案 0 :(得分:2)

Heroku忽略database.yml文件属性。您需要将DATABASE_URL设置为环境值。

ENV["DATABASE_URL"]= postgres:username:password@host/db_name

另请参阅: Heroku postgresql configuration.

答案 1 :(得分:1)

使用以下命令设置DATABASE_URL

heroku  config:addDATABASE_URL='postgres://asdfasdfasdf:asdfasdfasdf@ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com:5432/asdfasdfasdf'