如何在Heroku上修改数据库URL?

17

我正在尝试根据 在Heroku上共享两个应用程序之间的数据库,但在第二个应用程序上设置database_url时出现错误:

$ heroku config:add DATABASE_URL=postgres://...
Setting config vars and restarting pacific-headland-1960... failed  
 !    Cannot destroy last attachment to billing app for resource loving-subtly-5807
2个回答

27

DATABASE_URL 目前存储了您的第二个应用程序连接到其配备的数据库的信息,由于没有其他引用,Heroku已经很好地防止您删除它。

首先,请移除第二个应用程序的数据库。其中的所有内容都将被销毁。

heroku addons:destroy heroku-postgresql:<your DB tier> --app <your second app>

如果这些是新应用程序,您的数据库层可能是 hobby-dev,但您可以通过运行 heroku addons --app <your second app> 来检查。

然后,您将能够在第二个应用程序上设置 DATABASE_URL

如果您想让第二个应用程序连接到两个数据库,您需要将第一个应用程序的数据库URL存储在一个不同的环境变量中,并更新第二个应用程序的代码以使用它。


与您的问题无关,您刚刚将您的数据库凭据粘贴到了公共空间。您应该使用 heroku pg:credentials --reset --app <your first application> 重新生成它们。

文档: https://devcenter.heroku.com/articles/heroku-postgresql


哇,我又浏览回到这个问题,看到了我复制粘贴的内容 - 哇,对我来说在互联网上发帖还太早了 ;) - user1167937
1
我懂你的感受 :-D 肯定要保留信用点数,因为有编辑历史记录 - Kristján
1
Kristjan,如果您不介意的话,我想跟进一下。我尝试使用“heroku pg:psql”连接数据库,但它显示:“您的应用程序没有数据库。”根据文档,此命令应该适用于DATABASE_URL。您有任何想法为什么我无法连接吗? - user1167937
我本以为Heroku也只是使用配置的DATABASE_URL,但也许CLI正在查看您的插件,而现在应用程序2没有该插件。您仍然可以在应用程序1上运行pg:psql,因为数据库插件存在于那里。 - Kristján

0

来自Heroku

以前,您可以使用命令addons:add来添加插件。现在,该命令已被弃用,建议使用create命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接