Rails - Heroku没有加载database.yml中定义的数据库配置

时间:2018-06-01 23:57:51

标签: ruby-on-rails postgresql heroku

我在Heroku上部署了一个Rails应用程序,它工作正常,直到我们有相同的数据库用于开发和生产。出于某种原因,我们必须保持两个数据库相同,所以我更改了database.yml如下:

production:
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
  host: same_as_in_development
  port: 5432
  username: same_as_in_development
  database: same_as_in_development
  password: same_as_in_development

请注意,我们未使用来自AWS的localhost,它的Postgres网址。

但Heroku仍在加载旧数据库配置以进行生产。手动部署应用程序但没有运气。创建了新的应用程序,在那里部署了代码,但仍然没有像在开发中那样从数据库中保存/加载数据。似乎它使用配置变量中定义的数据库DATABASE_URL

1 个答案:

答案 0 :(得分:0)

Heroku使用DATABASE_URL环境变量来配置数据库连接。

DATABASE_URL变量的命名约定如下:

postgres://<username>:<password>@<host>/<dbname>

您可以从以下Heroku文档中了解有关设置数据库外部连接的更多信息。

https://devcenter.heroku.com/articles/heroku-postgresql#external-connections-ingress

如果您从头开始阅读documentation,它将详细了解Heroku如何连接数据库以及Heroku使用的约定。

Rails documentation也有一些关于使用DATABASE_URL

连接到数据库的信息