应用程序内的Heroku命令

时间:2013-02-06 12:12:52

标签: php heroku

我在Heroku上有一个应用程序,使用PHP和PostgreSQL。现在我想定期创建我的数据库备份,将其放在服务器上的文件夹中,或记录其S3 URL并下载它。

  • 我一直在研究这个话题。似乎最好使用我已经拥有的pgbackups附加组件,并且可以在本地命令行上使用,例如:heroku pgbackups:url --app=APP_NAME

  • 我想自动化这个过程,让我们说在一个cron工作中。我看到我们在Heroku上有工作人员,但我从未使用它们,这仍然是一个开发环境。免费计划没有工人。此外,我的应用程序并不真正需要后台工作人员。我不想只为自动数据库备份购买工作人员dynos。我应该走哪条路?

  • 如果我可以在Heroku上创建PHP cron作业,那么我需要知道:如何在PHP中运行Heroku命令?我尝试了exec和passthru,但它们似乎都没有在Heroku服务器上运行。在我的localhost上,上面的命令(heroku pgbackups)工作得很好,提供了安装在本地服务器上的Heroku工具带。

  • 对于Ruby,他们有https://github.com/heroku/工具包用于服务器端命令。但我在寻找PHP分支时没有运气......

总体目的是让数据库备份并将其存储在服务器上并下载它。 (尽管Heroku自己进行备份,但我们希望在手中看到它:)

我该如何实现?

1 个答案:

答案 0 :(得分:1)

可能最好的办法是在备份服务器上运行一个cron作业以运行heroku pgbackups:url并获取最新pgbackup的URL,然后使用curl下载它。像这样:

curl $(heroku pgbackups:url) > latest_backup

有关heroku pgbackups:url的详细信息,请参阅: https://devcenter.heroku.com/articles/pgbackups#downloading-a-backup

对工作人员dynos做任何事情都没有意义,因为除非你下载并重新上传它或什么东西,否则这不会真正帮助你备份到备份服务器。只需在备份服务器上下载一次cron作业就可以直接下载了。