3

我有一个在 rails 1.2.5 上制作的旧应用程序,这个应用程序每天有很多访问权限。

我打算升级我的服务器(joyent 加速器)以运行 ruby​​ 1.9.x 并使用 rails 3,但我无法停止或将此应用程序移动到另一台服务器。

有什么方法可以在 ruby​​ 1.9 上运行这个应用程序吗?或者同时运行两个 ruby​​ 版本(1.8.7 和 1.9)?还是在最后一种情况下升级我的应用程序以使用 rails 3?

谢谢。

4

3 回答 3

1

Rails 有很多补丁可以让它在 Ruby 1.9 下运行。我认为如果您尝试这样做,您将面临挑战。使用Ruby 版本管理器,您可以work with multiple ruby environments from interpreters to sets of gems.

于 2010-09-16T14:36:39.477 回答
1

是否必须切换到 Rails3 和 Ruby 1.9?您可以将旧应用程序放在虚拟化服务器上​​并保持应用程序按原样运行吗?

我建议的原因是我们刚刚经历了一个类似的案例。一家本地企业(一家建筑协会)在 2-3 年前为他们开发了一对应用程序(与 Rails 1.2.6 一起使用)。没什么大不了的(计费应用程序和投标/承包商/客户管理系统)。一切正常,因此无需更新任何内容。

他们的托管服务提供商不愿意在共享托管环境中保留旧的过时 Rails。托管商店引用的维护无法简化,安全问题等。果然,同一主机提供重写当前技术的应用程序(当然是有代价的)。

客户对他们不满意。开发应用程序的商店关闭后,开发人员前往更绿色的牧场。但一切正常,所以为什么要重新发明轮子,对吧?客户去寻找替代品。来到我们身边。我们与客户坐下来,进行了一些成本/收益分析,并决定只在虚拟化环境中托管(在另一个提供商处)。在一周内做到了(有一些小问题):备份、移动、恢复、测试,一切正常。它现在已经工作了 3 个月,没有任何问题。

这可能对您不起作用,但除非您需要添加到应用程序中,否则为什么要修复未损坏的内容?

于 2010-09-17T06:30:30.833 回答
0
  1. Rails 3 适用于 Ruby 1.8.7
  2. 另一种选择(除了明显的 RVM 之外)是保留 Ruby 1.8.7 和 Rails 1.x 并安装最新的 JRuby 和 Rails 3.0 以及jruby -S gem install rails. Ruby 和 JRuby gem 完美共存,没有任何干扰。Joyent 加速器中的 OpenSolaris 擅长运行 Java,因此您不会遇到太多问题。

PS 顺便说一句,我不建议您将 Rails 1.x 应用程序更新到 3.x,除非您打算向其中添加许多新功能。这可能会非常痛苦,尤其是如果您使用了许多老式的 gem 和插件。

于 2010-09-17T11:13:11.623 回答