为了账号安全,请及时绑定邮箱和手机立即绑定

在Heroku中的2个应用程序之间共享数据库

/ 猿问

在Heroku中的2个应用程序之间共享数据库

慕村225694 2019-11-08 10:56:22

我想从另一个Heroku应用程序访问一个应用程序的数据库。在共享数据库中有可能吗?



查看完整描述

3 回答

?
绝地无双

更新


最初,此答案表明,尽管可以通过一些技巧来实现,但强烈建议不要这样做。这是基于Heroku的开发人员支持网站上的意见。但是,Heroku最近发布了一封通信,专门描述了如何实现此目标,并在开发者网站上淡化了他们的建议。他们的电子邮件中此部分的全文如下:


你知道吗,Heroku的应用程序可以共享一个共同的数据库?例如,您可以将分析功能与面向用户的代码放在单独的应用程序中。


只需设置DATABASE_URL配置VAR为几个应用程序相同的值。首先,获取现有应用程序的DATABASE_URL:


$ heroku config | grep DATABASE_URL  --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute1.amazonaws.com/ldfoiusfsf

然后,将新应用程序的DATABASE_URL设置为此值:


$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics

Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74. That's it

-现在两个应用程序将共享一个数据库。


作为参考,Heroku最初的建议是创建并使用API远程访问数据。我个人的观点是,总的来说,在很多情况下,这是一个很好的建议(即,比仅将多个应用程序连接到同一个DB更好),尽管我看到的情况会带来更多麻烦,而不是值得的。


更新


根据对此答案的评论,值得注意的是,Heroku保留根据需要更改数据库URL的权利。如果发生这种情况,将导致您的辅助连接失败,并且您需要相应地更新URL。


查看完整回答
反对 回复 2019-11-08
?
手掌心

有关问题的最新解答!


Heroku现在通过其插件框架正式支持更好/优美的解决方案。最新的新闻通讯中介绍了如何在应用之间共享插件。以下是本文中提到的摘录:


$ heroku addons:attach my-sushi-db -a my-sushi-reporting --as MAIN_SUSHI_DB    

  Adding MAIN_SUSHI_DB to my-sushi-reporting... done

  Setting MAIN_SUSHI_DB vars and restarting my-sushi-app-reporting... done, v3

链接:expanding_the_power_of_add_ons


查看完整回答
反对 回复 2019-11-08

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信