如何为heroku应用程序更改DATABASE_URL

我已准备好外部数据库,现在想要使用我的heroku应用程序使用该数据库。 但是我无法编辑配置变量。 我尝试使用GUI,其中说,无法覆盖附件值DATABASE_URL。 虽然我也尝试使用CLI。 我使用了命令:heroku config:addDATABASE_URL =“postgresql:// username:password @ IP:PORT”。 但是,这会引发错误……..不是heroku命令。

在尝试了大多数这些答案之后,我在2016年遇到了更新, 这里 :首先需要分离数据库,然后更新DATABASE_URL的变量。

 heroku addons:attach heroku-postgresql -a  --as HEROKU_DATABASE heroku addons:detach DATABASE -a  heroku config:add DATABASE_URL= 

另一种不需要分离的方法(可能不是转换的预期结果)是简单地附加新数据库然后将其提升, Heroku Documents明确指出这是设置DATABASE_URL

 heroku addons:attach heroku-postgresql -a  heroku pg:promote heroku-postgresql -a  

如本文所述,设置/添加配置变量的正确语法是

 $ heroku config:set DATABASE_URL="postgresql://username:password@IP:PORT" 

但是,看起来(请参阅注释) DATABASE_URL已被弃用,尝试更新它将触发错误。

解决了它。 仅供具有相同问题或希望具有类似实现的用户参考。 这是适用于我的解决方法。

Heroku不再覆盖databse.yml,所以我只修改了database.yml中的DATBASE_URL并推送它:)

它也有效!

资料来源: https : //discussion.heroku.com/t/rails-4-1-database-yml-no-longer-overwritten-on-heroku/550

当我需要将postgres更改为postgis时,我今天遇到了同样的情况。 分离对我不起作用所以我对database.yml这样做了:

 production: url: <%= ENV['DATABASE_URL'].sub(/^postgres/, "postgis") %> 

https://github.com/rgeo/activerecord-postgis-adapter/issues/214

基于Heroku文档,您可以使用多个应用程序共享数据库。

 heroku addons:attach my-originating-app::DATABASE --app sushi