Обновление от Rails 3.2 до Rails 4

У меня есть приложение в Rails 3.2, которое готово к развертыванию. Мне интересно, должен ли я обновить его до Rails 4 или нет. Я также не уверен, какой из камней может дать проблемы при обновлении.

Ниже мой Gemfile с несколькими общими камнями.

Gemfile.rb

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'pg', '0.12.2'

gem 'bcrypt-ruby', '3.0.1'

gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'simple_form', '2.0'
gem 'rails3-jquery-autocomplete', '1.0.10'
gem 'show_for', '0.1'
gem 'paperclip', '3.3.1'
gem 'cocoon', '1.1.1'
gem 'google_visualr', '2.1.0' 
gem 'axlsx', '1.3.4'
gem 'acts_as_xlsx', '1.0.6'
gem 'devise' ,'2.1.2'
gem 'cancan', '1.6.8'
gem 'bootstrap-datepicker-rails', "0.6.32"
gem 'country_select', '1.1.3'
gem 'jquery-rails', '2.1.4'
gem 'annotate', '2.5.0', group: :development
gem 'ransack', '0.7.2'
gem "audited-activerecord", "3.0.0"
gem 'prawn', '1.0.0.rc2'
gem 'exception_notification', '3.0.1'
gem 'daemons', '1.1.9'
gem 'delayed_job_active_record', '0.4.3'
gem "delayed_job_web", '1.1.2'
gem "less-rails"
gem "therubyracer"
gem 'twitter-bootstrap-rails', '~>2.1.9'
gem "spreadsheet", "~> 0.8.8"

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '1.2.3'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

group :development, :test do
  gem 'rspec-rails', '2.11.0'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '4.1.0'
  gem 'faker', '1.0.1'
end

Я начал работать над этим приложением в прошлом году (ноябрь 2012 года) после прочтения этой замечательной книги на http://ruby.railstutorial.org/. Я также проверил, что нового в Rails 4 как сильные параметры, и все это очень заманчиво, чтобы попробовать обновление.

Но я обеспокоен совместимостью этих драгоценных камней и усилий, которые она может предпринять.

Мне нужны советы от опытных парней в сообществе или кто-то, кто попробовал модернизацию, прежде чем двигаться дальше.

Ответ 1

Я загрузил ваш gemfile в Ready to Rails 4, и кажется, что у вас есть только несколько драгоценных камней, которые не готовы, и один драгоценный камень, который неизвестен. Для некоторых из перечисленных драгоценных камней, у которых нет заметок, я бы предложил проверить их страницу GitHub (если они есть) и посмотреть, был ли недавно обновлен камень на рубигемах, чтобы подтвердить, работает ли этот драгоценный камень.

Ответ 2

Это краткое руководство стоило каждого процента в нашей недавней миграции от 3,2 до 4.

https://leanpub.com/upgradetorails4

https://github.com/alindeman/upgradingtorails4

В нем подробно описано, как обрабатывать обновления gem, а также отдельные детали (с четкими примерами) того, что изменилось и как управлять текущим приложением Rails через обновление.

Для решения ваших проблем, связанных с конкретными драгоценными камнями: почти все наши 40+ драгоценных камней, кроме, возможно, 5, имели активные выпуски Rails 4 (или ветки Github для Rails 4) или отлично работали с Rails 4, когда они остались нетронутыми.

Наличие здорового набора функций/функциональных тестов в вашей кодовой базе будет жизненно важно для уверенности в успешности обновления.

Ответ 3

Конвейер активов немного изменился, поэтому вам нужно обновить эти драгоценные камни. Мне пришлось использовать вилку ransack в контексте active_admin, но вы можете быть в порядке.

Я бы рекомендовал вам создать ветку, поднять Rails 4 и посмотреть, что произойдет. Мне потребовался день или два, чтобы обновить с 3.2 до 4 пару недель назад на довольно небольшом (но в производстве с клиентами) приложении. руководство по обновлению довольно прочное.