2012-04-13 127 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