2011-06-25 36 views
0

我已經安裝了我的應用程序,以根據他們的文檔在分階段和生產環境下在Heroku上運行。 http://devcenter.heroku.com/articles/multiple-environmentsRails 3:HEROKU分期和生產回購管理

使用staging應用程序進行管理似乎非常簡單,可以將整個部署或新分支上移到staging中進行測試。我想知道的是如何管理生產版本。

部署新代碼時如何保持我的產品正常運行?我是否會從分段中引入更改,或者是否重新部署整個應用程序,並將合併的更改合併到一起?

其次,在所有這些過程中如何管理和保持數據庫的完整?我習慣於在本地運行,如果您執行新的部署和新的rake:db:migrate,則會丟失所有數據庫數據。這在生產中如何完成,不會丟失記錄?

謝謝你和任何有關heroku管理的其他提示,歡迎參加。

回答

0

通常,您在本地進行更改,包括遷移或其他。在將更改推送到生產應用程序之前,請將更改推送到您的臨時應用程序,以檢查事情是否正常。

如果您在更改中添加了遷移,請務必運行heroku run rake db:migrate以遷移登臺數據庫。運行rake db:migrate應該而不是只要你的遷移是正確的 - 即沒有奇怪的篡改數據,只是標準的添加/重命名/等等,銷燬任何數據。列或引入新表格。 (很顯然,如果您在遷移中刪除表格,它將會消失。)

然後,如果您的演示應用程序一切正常,請將更改推送到您的作品,如果您有任何新的遷移,請再次運行heroku run rake db:migrate。如果情況不好,運行heroku help以獲取您可以使用的命令列表 - 特別是關於發行版的命令列表,以便您可以恢復到以前的版本。另外heroku logs真的很有用,而heroku console(實際的命令可能會略有不同),但是當你啓動一個控制檯時,千萬小心不要篡改數據太多。

使用Heroku,不需要部署命令 - 正確的時候你推動,你的更新代碼就在那裏。如果您之前使用過Capistrano,請不要使用「帽子部署」。

希望這會有所幫助。