【问题标题】:How can I run a Rails 1.2.5 application on ruby 1.9?如何在 ruby​​ 1.9 上运行 Rails 1.2.5 应用程序?
【发布时间】:2011-04-13 06:19:51
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby-1.9.1


    【解决方案1】:

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

    【讨论】:

    • 是的,我知道这很困难,但我尝试运行 rvm,但我对在生产服务器上运行它的最佳方式有一些疑问,在不同的 Rails 版本上有很多应用程序.你有没有做过这样的事情?你知道怎么做吗?
    • 并非如此,但我在生产服务器上同时拥有 1.8.7 和 1.9.2。不过目前只使用 1.8.7。但似乎只是安装rvm然后添加项目.rvmrc的rvm.beginrescueend.com/workflow/rvmrc
    • Jonas,我做了一些测试,你的想法很好,我将为每个新项目创建一个 .rvmrc 文件,旧项目将继续在 ruby​​ 系统版本上运行。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 这是个好主意,但是太贵了,预算不允许。我将尝试 Jonas 的想法,为每个用户使用 rvm 和不同的 .rvmrc,换句话说,旧应用程序将在 ruby​​ 1.8.7 上运行,而新闻将使用 1.9。你怎么看?
    • 如果 rvm 适合你,那就去吧!但如果不是,那么您仍然必须决定(成本/收益)是否值得将旧应用程序移植到新的 Ruby/Rails。我敢打赌,如果 rvm 不起作用,单独 VM 的持续成本将远远低于编码/升级、测试、修复错误所花费的时间。
    【解决方案3】:
    1. Rails 3 适用于 Ruby 1.8.7
    2. 另一个选择(除了明显的 RVM)是保留您的 Ruby 1.8.7 和 Rails 1.x 并使用 jruby -S gem install rails 安装最新的 JRuby 和 Rails 3.0 以及相关的 gem。 Ruby 和 JRuby gem 完美共存,没有任何干扰。 Joyent 加速器中的 OpenSolaris 擅长运行 Java,因此您不会遇到太多问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2014-04-16
      相关资源
      最近更新 更多