2012-04-13 130 views
2

我有3.0.5 rails應用程序,它們正在變老。 我打算升級到Rails 3.2從Rails 3.0升級到3.1,然後升級到3.2 - 但保持3.0工作

指南建議先從3.0到3.1然後到3.2如此 這就是我會嘗試的。

但是,當我做升級時,我想保持項目完全正常工作,並且 可能甚至會使用當前的3.0.5應用程序推動生產。

所以基本上我想要並行升級而不打擾 真正的應用程序。

我將使用運行Snow Leopard的相同機器。

我使用RVM進行Ruby管理。

任何建議如何設置此平行升級? Git分支 實際上是一個選項,那麼很多潛在的變化是否適合Git分支的概念呢?

謝謝

+4

我有一個叫做「rails-31」的git分支,用於從3.0遷移到3.1以及3.2的遷移。爲我工作得很好。另外,我有一個穩定的分支機構,它每天都在部署,Bugfixes和小改進都屬於這個分支機構。 Mergin master/stable回到「rails-31」分支很容易。就我的經驗來說,git-branching對於我來說是完美的。 – Deradon 2012-04-13 07:58:11

+0

非常感謝Deradon!我也會這樣做。 – Pod 2012-04-14 08:10:15

回答

5

你應該明確地使用git分支。一個可能的好混帳的工作流程是這樣:

  • 讓我們假設你的分公司目前on Rails的3.0.x和它在生產。
  • 在此主分支中,您創建了2個分支:rails_30,rails_31。
  • 你開始在rails_31分支工作提供一切必要的升級到Rails 3.1.X進行必要的修改(這從瑞安貝茨截屏會幫助你很多:http://railscasts.com/episodes/282-upgrading-to-rails-3-1
  • 當您完成遷移到Rails的3.1.x(提示:你所有的測試都通過了),你可以創建一個新的rails_32這個分支。然後您可以繼續升級到Rails 3.2.x(查看其他railscast:http://railscasts.com/episodes/318-upgrading-to-rails-3-2
  • 當您需要對當前的Rails 3.0.x代碼庫進行更改時,您將在rails_30分支上工作。如果改變是好的,那麼你可以把它推給主人。一旦這個推你可以嘗試這個分支合併或櫻桃挑碼到您的rails_31rails_32分支(無論你用在這個時間點上工作)

記住升級Rails應用程序並不總是一項簡單的任務,因此請相應地計劃您的時間&。如果你被困住了;一個gem不被支持,你的邏輯在一個較新版本的Rails中失敗(相信它很可能會發生在)。請記住,Ruby on Rails社區是巨大的,許多開發人員已經通過這個之前,並有共享他們的知識在stackoverflow和其他網站/博客。只是繼續推動。

祝你好運。

+0

謝謝,我應該在之前選擇正確的答案。你和Deradon的解釋很好。是的,我結束了使用分支機構,迄今爲止兼容性一直不錯。 – Pod 2013-04-05 20:09:53