2013-03-13 58 views
0

我在Heroku上安裝了wordpress,我可以安裝插件和更新。 我的問題是,如果服務器上的某些文件發生變化,我如何確保它能夠提交給我的應用程序的heroku git repo?Heroku上的WordPress更新

示例,wordpress發佈更新。 我點擊管理員中的更新wordpress。 所有更新的文件都在服務器上更改。 如果我從heroku複製回購,我會有新安裝的wordpress版本嗎?

回答

3

Heroku文件系統是Ephemeral這就是說當dyno由於某種原因重新啓動時,本地存儲的文件將會丟失。 dynos無權訪問Git存儲庫。它們存儲在一個實際上是zip文件的名字中。這是一項安全功能:如果有人猜測密碼並獲得對文件系統的訪問權限,那麼在重新啓動應用程序時,他們將不得不重新採用該應用程序。允許有人從網絡更新您的版本控制是一個真的很棒的想法

所以,即使WordPress的運行更新,看似成功,它的一個或兩個以下:

  1. 文件寫入到文件系統在下次重啓
  2. 丟失寫入到數據庫中不丟失

這可能會搞亂你的整個安裝,因爲代碼和數據將不同步。

上有在Heroku上運行的WordPress安裝的東西的方式有兩種:

  1. 解壓的東西在他們正當​​的地方,將他們推向Heroku的Git中。
  2. 在本地運行您的Wordpress實例,針對生產數據庫,並將更改推送到Heroku。

選項2也可能是危險的,因爲它在應用程序運行時實際上與生產數據庫有關。這意味着您應該停止生產版本的維護或將其轉爲只讀。記得也要記錄數據庫快照。

0

我使用選項1來做到這一點。使用Git只需按動更改您的Heroku之後遠程每次提交如下:

git push heroku branchinwhichyouareworking 

這樣你的更改都將致力於爲您的應用程序的混帳回購協議。 請記住,如果它不是主分支,你正在推動一個Heroku的,您必須使用此語法:

git push heroku branchinwhichyouareworking:master 

更多信息here