Обновление от 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 пару недель назад на довольно небольшом (но в производстве с клиентами) приложении. руководство по обновлению довольно прочное.