访问pg:来自Heroku Scheduler的备份

时间:2016-08-17 10:42:23

标签: ruby heroku amazon-s3 heroku-postgres

我想将我最后的heroku postgres备份发送到S3以将其存储在heroku基础结构之外,以防我在错误的数据库上单击“删除”。

要实现这一点,我需要一个备份URL。我试图运行heroku pg:backups public-url -q,但它不适用于一次性dynos(我试过heroku run bash dyno)。看来,dynos上没有heroku toolbelt。

我以为我可以使用platform-api gem,但似乎不支持pg:backups。

您知道如何在heroku调度程序上获取pg备份数据吗?或者您可能有更好的方法将数据库备份发送到S3?

1 个答案:

答案 0 :(得分:1)

有点晚了,回答将来有这个问题的人。

Heroku平台没有内置任何功能,可直接将Postgres备份自动导出到非平台存储。有一种相当简单的方法可以轻松解决此问题。

想象一下,具有相关数据库的应用程序名为foo,并且您对该数据库有计划的每日备份。定期地,您希望按照问题中所述将备份导出到S3。首先,创建一个虚拟应用程序,其功能类似于服务帐户。我们现在将其称为bar

现在,确保在此应用程序中包含Heroku CLI buildpack,并按照设置说明进行操作。这样,您可以直接从bar的应用程序代码授权和访问CLI。现在,您可以将Heroku Scheduler插件添加到bar并编写一些应用程序代码(例如rake任务,因为我们在谈论ruby)以完成下载和备份。一旦安排好任务以您希望的时间间隔运行,便有了一个可以为您存档Postgres备份的应用程序。