我试图根据
Heroku 中的 2 个应用程序之间共享数据库在
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
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>
来滚动它们。
来自Heroku
以前要添加附加组件,您可以使用命令
。该命令现已弃用,取而代之的是addons:add
命令。create
我也遇到了同样的问题。
heroku config:remove DATABASE_URL
heroku config:add DATABASE_URL="my_fancy_db_connection"
最后一步确实让我绊倒了,但我尝试不加引号。添加这些就可以了。