2015-09-14 2 views
0

Я хочу обновить огромный Ruby on Rails v2.3.18 приложение к Rails v4.2.4 (последнее).Как обновить с Ruby on Rails 2.3.18 до 4.2.4 (последний)?

После выполнения someresearch, я придумал:

  • После Rails 2.3.18 (март 18, 2013), в общей сложности 195 версии были выпущены до Rails 4.2.4 (24 августа 2015)
    • , в которых стабильные релизы
    • и основные релизы
    • файлы, измененные
    • совершает

Наше приложение работает Ruby On Rails 2.3.18 на Руби 2.1.5.

  • Ruby также следует обновлять с этой версии до 2.2.x?
  • Есть ли люди, которые достигли или пробовали этот «прыжок веры» и преуспели?
  • С чего начать, чтобы достичь моей цели?
  • Что такое базовый поток обновления любого приложения Ruby on Rails?

ответ

2

Я также обдумывал этот вопрос с некоторыми 5-летними проектами - я продолжать использовать рельсы 2.3.18 LTS https://railslts.com/, или перейти на рельсы 4.2, зная, что нужно будет смотреть на ежегодно/раз в два обновлении версия рельсов. Я подозреваю, что буду успешнее проводить выборочную замену по мере разработки новых функциональных возможностей.

Во всяком случае, информация, которую я нашел, кажется, указывает, что это большой шаг за шагом процесс:

Это сообщение может быть полезен - https://groups.google.com/d/msg/rubyonrails-talk/y0q1fc8N_GU/H2xOsy2mYpwJ

В этом Роб Биденхарна предлагает

• обновление rails-2.3.18 На самом деле нет причин для этого и PLENTY по уважительным причинам, что вы должны были это сделать уже. 2.3.9 (2010-09-04) была версия, которая впервые дала предупреждения об отказе от обновления для рельсов-3.0 2.3.18 (2013-03-18) была последней версией в строке 2.3 и содержит исправления для наименее 10 уязвимостей (некоторые из них весьма серьезных!)

• получить все ваши тесты, чтобы пройти (если вы не имеют тесты, вы бы лучше верить) • адреса всех устареваний предупреждения

• не обновлять рубин еще https://developer.uservoice.com/blog/2012/03/04/how-to-upgrade-a-rails-2-3-app-to-ruby-1-9-3/ Но вам, возможно, придется перейти на рубин-1.8.7, поскольку rails-3.0 официально не поддерживает 1.8.6)

О, и я взглянул на http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html, как предложил Джейсон Флитвуд-Болдт, и у этого есть БОЛЬШОЕ подробное прохождение, хотя процесс обновления от 3.0 до 4.1 , Но если у вас нет времени, чтобы пойти и посмотреть на это самостоятельно, то, возможно, я дал вам достаточно, чтобы взвесить пути обновления v. Rewrite.

• перейти на рельсы-3.0.0 (возможно, даже непосредственно к рельсам-3.0.20) • получить все тесты пройти

• обновление до рубиново-1.9.2 (или, возможно, даже рубин-1.9 +0,3) • получить все ваши тесты, чтобы пройти

• перейти на рельсы-3.1.12 (последняя из линии рельсы-3.1) Это не может быть строго требуется, но 3,1 представил трубопроводный Asset и также Jquery рамки JavaScript по умолчанию. Если у вас есть много использования Prototype или Scriptaculous в приложении, вероятно, было бы хорошей идеей, чтобы преобразовать его в JQuery (и получить https://github.com/rails/jquery-ujs) • получить все тесты пройти

• перейти на рельсы-3.2. 19 • получить все тесты пройти

• обновление до рубиново-2.1.2 (там, наверное, нет оснований использовать только 2.0 в этой точке) • получить все тесты пройти

• перейти на рельсы -4.0.8 • получите все ваши тесты, чтобы пройти

• перейти на рельсы-4.1.4 • справиться с новым secrets.yml файла • получить все ваши тесты, чтобы пройти

• взять отпуск

Серьезно, есть много делать, если вам действительно хотите перейти по пути обновления. Я даже не упомянул ни о каких проблемах, с которыми вы почти наверняка сталкиваетесь с драгоценными камнями, которые перестают работать с более новыми версиями Rails или даже с новыми Rubies. Я бы рекомендовал, чтобы вы очень серьезно относились к «обновлению» приложения как к более простому способу приведения приложения в текущий, поддерживаемый RoR-стек.

+0

Сейчас два года спустя, а разрыв еще шире с Rails 5.1 и используется. Моя нынешняя стратегия заключается в том, чтобы не обновлять рельсы до версии 2.3.18 LTS. Вместо этого, когда существует необходимость в том, что рельсы 2.3.18 не обеспечивают (или обеспечивают хорошо), запускайте phoenix параллельно и постепенно перемещайте контроллеры. Я склоняюсь к фениксу для будущих проектов нового проекта. – iheggie

Смежные вопросы