Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 应用程序中的Heroku命令_Php_Heroku - Fatal编程技术网

Php 应用程序中的Heroku命令

Php 应用程序中的Heroku命令,php,heroku,Php,Heroku,我在Heroku上有一个应用程序,使用PHP和PostgreSQL。现在,我想定期创建数据库备份,将其放在服务器上的文件夹中,或者记录其S3 URL并下载 我一直在做这方面的研究。似乎最好是使用pgbackups插件,我已经有了它,并且可以在本地命令行上使用它,比如:heroku pgbackups:url--app=app\u NAME 我想自动化这个过程,比如说在cron作业中。我看到Heroku上有工作人员,但我从未使用过,这仍然是一个开发环境。自由计划没有工人。此外,我的应用程序实际上

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

  • 我一直在做这方面的研究。似乎最好是使用pgbackups插件,我已经有了它,并且可以在本地命令行上使用它,比如:
    heroku pgbackups:url--app=app\u NAME

  • 我想自动化这个过程,比如说在cron作业中。我看到Heroku上有工作人员,但我从未使用过,这仍然是一个开发环境。自由计划没有工人。此外,我的应用程序实际上并不需要背景工作人员。我不想只为自动数据库备份购买worker dynos。我该走哪条路

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

  • 对于Ruby,他们有用于服务器端命令的工具箱。但是我在搜索PHP分支时没有运气

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


如何实现这一点?

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

curl $(heroku pgbackups:url) > latest_backup
有关
heroku pgbackups:url
的更多信息,请参阅:


使用worker dynos做任何事情都没有意义,因为这并不能真正帮助您将备份获取到备份服务器,除非您正在下载并重新上传它或其他东西。只需在备份服务器上运行cron作业下载一次就简单多了。

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

curl $(heroku pgbackups:url) > latest_backup
有关
heroku pgbackups:url
的更多信息,请参阅:


使用worker dynos做任何事情都没有意义,因为这并不能真正帮助您将备份获取到备份服务器,除非您正在下载并重新上传它或其他东西。只需在备份服务器上运行一个cron作业,下载一次就简单多了。

Re:“将其放在服务器上的文件夹中”,您在这里指的是哪台服务器?如果你说的是Heroku,你应该知道你的应用程序至少每24小时运行一次。不,不,我们将把它放在备份服务器上。一个基本的linux,apache,postgresql.Re:“把它放在服务器上的一个文件夹里”,你在这里说的是哪台服务器?如果你说的是Heroku,你应该知道你的应用程序至少每24小时运行一次。不,不,我们将把它放在备份服务器上。一个基本的linux,apache,postgresql。逻辑!三个臭皮匠胜过一个诸葛亮。我是如此专注于让它发生在Heroku身上,合乎逻辑!三个臭皮匠胜过一个诸葛亮。我非常专注于让它发生在Heroku身上。