1

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

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

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

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

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

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

我怎样才能让它发生?

4

1 回答 1

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

用工人测功机做任何事情都没有真正意义,因为除非您正在下载并重新上传它或其他东西,否则这不会真正帮助您将备份备份到备份服务器。只需在备份服务器上运行一次 cron 作业下载一次就更直接了。

于 2013-02-07T22:52:21.853 回答