不能在带有Fusion Passenger的Rails上的database.yml中使用Diplomat

时间:2017-12-14 23:47:09

标签: ruby-on-rails nginx passenger fusion

我正在尝试使用https://github.com/WeAreFarmGeek/diplomat

根据他们的README说明,我已经像我这样调整了我的database.yml:

<% if Rails.env.production? %>
production:
  adapter:            postgresql
  encoding:           unicode
  host:               <%= Diplomat::Service.get('postgres').Address %>
  database:           <%= Diplomat::Kv.get('project/db/name') %>
  pool:               5
  username:           <%= Diplomat::Kv.get('project/db/user') %>
  password:           <%= Diplomat::Kv.get('project/db/pass') %>
  port:               <%= Diplomat::Service.get('postgres').ServicePort %>
<% end %>

使用RAILS_ENV=production rails c运行时,我可以正常连接到数据库。但是,当应用程序以乘客启动时,似乎这些值为空,我收到错误: ActionView::Template::Error (No connection pool with 'primary' found.)

我认为乘客对database.yml很聪明?

我怀疑是对数据库.yml的ERB模板并不是真的 除了明确从nginx配置传递的ENV变量之外的工作。

0 个答案:

没有答案