Ruby on rails Heroku上的Rails应用程序没有';似乎不需要database.yml文件

Ruby on rails Heroku上的Rails应用程序没有';似乎不需要database.yml文件,ruby-on-rails,heroku,Ruby On Rails,Heroku,我和几个合作者正在开发一个Rails应用程序,我们决定开始使用单独的database.yml文件一段时间,直到我们能够找到一个适合我们所有人的配置 在将database.yml添加到.gitignore文件并推出没有它的版本后,我意识到这可能会阻止Heroku应用程序运行 我的困惑是部署成功了,不需要database.yml文件。为什么会这样?是否缓存了旧的database.yml文件?这实际上是预期的行为。有关更多详细信息,请参阅: 这可以归结为(对于Rails 4.1+): 而默认连接信息将

我和几个合作者正在开发一个Rails应用程序,我们决定开始使用单独的database.yml文件一段时间,直到我们能够找到一个适合我们所有人的配置

在将database.yml添加到.gitignore文件并推出没有它的版本后,我意识到这可能会阻止Heroku应用程序运行


我的困惑是部署成功了,不需要database.yml文件。为什么会这样?是否缓存了旧的database.yml文件?

这实际上是预期的行为。有关更多详细信息,请参阅:

这可以归结为(对于Rails 4.1+):

而默认连接信息将从 数据库\u URL中的任何其他配置选项 config/database.yml将合并到中


Heroku将始终使用DATABASE_URL,并将DATABASE.yml中的其余部分合并到该URL中包含的配置中。

这实际上是预期的行为。有关更多详细信息,请参阅:

这可以归结为(对于Rails 4.1+):

而默认连接信息将从 数据库\u URL中的任何其他配置选项 config/database.yml将合并到中


Heroku将始终使用DATABASE_URL,并将DATABASE.yml中的其余部分合并到该URL中包含的配置中。

啊,是的,旧的db配置开发者war

Heroku实际上使用了这个问题的解决方案—Rails将
database.yml
中的数据库配置与通过解析
ENV[“database\u URL”]
创建的哈希合并。ENV var优先于基于文件的配置

当你第一次推送Rails应用程序时,Heroku会自动附加一个Postgres插件,并设置
ENV[“DATABASE\u URL”]
,然后将你的应用程序神奇地连接到数据库

即使您添加了完全无意义的设置,如在
database.yml
中设置数据库名称,ENV-var仍然获胜

这如何解决我们的开发者之战

做与你目前正在做的相反的事情。除去从
数据库.yml中运行应用程序所需的最低限度之外的所有内容,并将其签回版本控制


开发人员可以使用设置
ENV[DATABASE\u URL]
的众多工具中的一个来自定义设置,而
DATABASE.yml
应该保持不变,除非您确实需要调整数据库。

啊,是的,旧的数据库配置开发人员war

Heroku实际上使用了这个问题的解决方案—Rails将
database.yml
中的数据库配置与通过解析
ENV[“database\u URL”]
创建的哈希合并。ENV var优先于基于文件的配置

当你第一次推送Rails应用程序时,Heroku会自动附加一个Postgres插件,并设置
ENV[“DATABASE\u URL”]
,然后将你的应用程序神奇地连接到数据库

即使您添加了完全无意义的设置,如在
database.yml
中设置数据库名称,ENV-var仍然获胜

这如何解决我们的开发者之战

做与你目前正在做的相反的事情。除去从
数据库.yml中运行应用程序所需的最低限度之外的所有内容,并将其签回版本控制

开发人员可以使用设置
ENV[DATABASE\u URL]
的多种工具中的一种来自定义设置,而
DATABASE.yml
应该保持不变,除非您确实需要调整数据库