Heroku 永久数据库凭据

10
我决定在运维方面节省时间并转移到Heroku。我计划在Heroku上有一个生产dyno,其中包含一个postgres数据库和另一个从同一数据库中读取的dyno。
然而,当我打开postgres的设置时,它显示:
数据库凭据 获取手动连接到此数据库的凭据。
请注意,这些凭据不是永久性的。 Heroku定期更换凭据并更新连接到该数据库的应用程序。
如何解决这个问题?
2个回答

13

来自Heroku文档

凭证

不要复制和粘贴数据库凭据到另一个环境或者应用程序的代码中。数据库URL由Heroku管理,并且在一些情况下会发生更改,例如:

  • 用户开始使用heroku pg:credentials:rotate进行数据库凭证轮换。
  • 灾难性硬件故障导致Heroku Postgres员工将您的数据库恢复到新硬件上。
  • HA启用计划中的自动故障转移事件。

最佳实践是在应用程序启动时始终从相应的Heroku应用程序获取数据库URL配置变量。例如,您可以使用Heroku CLI遵循12Factor应用程序配置原则并像这样调用您的进程:

DATABASE_URL=$(heroku config:get DATABASE_URL -a your-app-name) your_process

这样做可以确保您的流程或应用程序始终具有正确的数据库凭据。


4
your_process 中要输入哪个值? - Joseph K.
your_process 将是之前设置的 database_url 所消耗的应用程序/服务。 - software_writer
那跟 你的应用 有什么不同?你能澄清一下吗? - Joseph K.
your-app 是你的 Heroku 应用程序,其中设置了配置变量 database_url。在上面的示例中,您正在从 Heroku 应用程序中提取这些配置变量,并将它们设置为 database_url,该变量由 your_process 使用,可以是任何使用相同 database_url 的应用程序,包括您的 Heroku 应用程序。 - software_writer
您的进程示例值 - Smart Manoj

1
也许将同一数据库连接到两个Heroku应用程序会更适合您。这样,pg凭据将由Heroku自动管理。
我也在使用这种技术。我有一个面向客户的应用程序和另一个操作应用程序共享同一个数据库实例。
您可以使用UI或CLI来完成此操作。
请参见在Heroku之间共享数据库

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