2013-02-06 40 views
1

我在Heroku上有一個應用程序,使用PHP和PostgreSQL。現在我想定期創建數據庫的備份,將其放在服務器上的文件夾中,或者記錄下它的S3網址並下載它。Heroku在應用程序內的命令

  • 我一直在研究這個話題。看起來最好的是使用pgbackups插件,我已經有,可以在本地命令行上使用,如:heroku pgbackups:url --app=APP_NAME

  • 我想自動化該過程,讓我們說一個cron作業。我看到我們在Heroku有工作人員,但我從未使用過它們,這仍然是一個開發環境。免費計劃沒有工人。此外,我的應用程序並不需要後臺工作人員。我不想僅爲自動數據庫備份購買工人dynos。我應該走哪條路?

  • 如果我可以在Heroku上創建PHP cron作業,那麼我需要知道:我如何在PHP中運行Heroku命令?我嘗試過exec和passthru,但是他們都沒有在Heroku服務器上工作。在我的本地主機上,上述命令(heroku pgbackups)工作得很好,提供安裝在本地服務器上的Heroku工具欄。

  • 對於Ruby,他們有用於服務器端命令的https://github.com/heroku/工具包。但我在搜索PHP分支時沒有運氣...

總體目的是讓數據庫備份並將其存儲在服務器上並下載它。 (即使Heroku自己做備份,我們希望看到它在我們的手中:)

我該如何做到這一點?

+1

回覆:「把它放在服務器上的文件夾中」,你在說哪個服務器?如果你在談論Heroku,你應該知道你的應用程序運行在一個[暫時文件系統](https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem)[重新啓動](https:至少每24小時進行一次。 – ryanbrainard

+0

不,不,我們會把它放在備份服務器上。基本的linux,apache,postgresql。 –

回答

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作業就可以直接下載。

+0

邏輯!三個臭皮匠頂個諸葛亮。我非常專注於在Heroku上實現它。 –

相關問題