我正在使用Ruby on Rails开发一个应用程序,想要至少维护几年,所以我担心下一个版本很快就会推出。
从Rails 1升级到Rails 2非常痛苦,以至于我不想去尝试,而是冻结了我的gems,让应用程序孤独地死在黑暗中。
在这个项目中,我不想那样做。首先,因为这个新版本看起来棒极了,其次因为这个应用程序可能会成为一个真正的产品。
我该如何准备我的应用程序,使它尽可能少地更改就能升级?
你认为切换版本需要多长时间?
那么我的服务器呢?部署呢?
我已经在查看弃用通知...还能做什么?
我正在使用Ruby on Rails开发一个应用程序,想要至少维护几年,所以我担心下一个版本很快就会推出。
从Rails 1升级到Rails 2非常痛苦,以至于我不想去尝试,而是冻结了我的gems,让应用程序孤独地死在黑暗中。
在这个项目中,我不想那样做。首先,因为这个新版本看起来棒极了,其次因为这个应用程序可能会成为一个真正的产品。
我该如何准备我的应用程序,使它尽可能少地更改就能升级?
你认为切换版本需要多长时间?
那么我的服务器呢?部署呢?
我已经在查看弃用通知...还能做什么?
您最好的做法是通过博客和 Github 仓库关注 Rails 3 的开发进展,并保留您的应用程序的一个副本。
官方的 Ruby on Rails 博客 会不时地发布“边缘新功能”文章。还有一些其他博客也经常写一些有关边缘新功能的文章。这些博客通常会突出较大的特性,以便您了解可以使用的所有新功能。
我不确定 Rails 3 距离发布有多近(据我所知,核心团队在 2009 年 5 月的 RailsConf 上谈论发布),但您可以将边缘版本的 Rails 冻结到您的应用程序中,然后查看哪些内容破裂了。如果您正在使用 git 或另一个 DVCS,则可以为 Rails 3 制作一个分支,并定期将 Rails 更新到最新的边缘代码。只需注意,边缘 Rails 是一个不断变化的目标,因此在您拉取更新的 Rails 代码时,您的应用程序中的内容可能会损坏或修复自身。
更新: Jeremy McAnally 在他的博客上提供了大量有关从 Rails 2 升级到 Rails 3 的信息。 http://omgbloglol.com/
只需要做一件事
首先备份您的旧版本项目,然后
在终端(命令提示符)中输入
rails new path/of/the/project
home/rails_projects/myproject
,那么:
rails new home/rails_projects/myproject
或者
cd home/rails_projects
rails new myproject
它会询问是否对任何/config
或其他文件进行了修改。请适当处理。
将会有一些自动化的兼容性检查器。同时,关注http://www.railsplugins.org/,以便了解你所依赖的库是否将进行升级。这次 Rails 核心团队似乎向社区提前通知了很多,因此任何正在积极维护的库都应该可以使用。
Rails 3 有一些重大变化,我在这里发布了关于将我的应用程序升级到 Rails 3 的经验:http://rails3.community-tracker.com/permalinks/5/notes-from-the-field-upgrading-to-rails-3
为了做好准备,一个很好的开始是迁移到使用 bundler。并且对将通过新的 XSS 保护方案的字符串进行深入审查。
为了准备您的应用程序,最好的方法就是像Jared所说的那样。遵循Rails3的开发。
关于时间消耗,我认为这取决于您在发布之前如何跟随rails3的开发。
至于部署,不应该出现太多问题。Rails 3将使用Rack。因此,您可以使用Mongrel、Passenger或任何服务器/网关来启动它,并且不应该出现任何问题。