12

Ich habe eine Anwendung in Rails 3.2, die einsatzbereit ist. Ich frage mich, ob ich es auf Rails 4 upgraden sollte oder nicht. Ich bin mir auch nicht sicher, welche der Edelsteine ​​beim Upgrade Probleme verursachen könnten.Upgrade von Rails 3.2 auf Rails 4

Unten ist mein Gemfile mit einigen gemeinen Edelsteinen.

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 

Ich begann zu dieser Anwendung im letzten Jahr (November 2012) zu arbeiten, nachdem dieses große Buch bei http://ruby.railstutorial.org/ lesen. Ich habe auch überprüft, was in Rails 4 wie starke Parameter neu ist, und es ist alles sehr verlockend, ein Upgrade zu versuchen.

Aber ich bin besorgt über die Kompatibilität dieser Edelsteine ​​und die Mühe, die es dauern kann.

Ich brauche einen Rat von erfahrenen Jungs in der Gemeinde oder jemand, der versucht hat, zu aktualisieren, bevor ich voran gehe.

Antwort

28

Ich habe Ihre gemfile auf Ready for Rails 4 hochgeladen, und es scheint, dass Sie nur ein paar Edelsteine ​​haben, die nicht bereit sind und ein Juwel, das unbekannt ist. Für einige der aufgelisteten Edelsteine, die keine Notizen haben, würde ich vorschlagen, ihre GitHub-Seite (wenn sie eine haben) zu überprüfen, und sehen, ob der Edelstein kürzlich in Rubygems aktualisiert wurde, nur um zu bestätigen, ob der Edelstein funktioniert.

4

Die Asset-Pipeline hat sich ein wenig geändert, daher müssen Sie diese Edelsteine ​​upgraden. Ich musste im Kontext von active_admin einen forks of rack verwenden, aber es könnte gut gehen.

Ich würde empfehlen, dass Sie eine Verzweigung erstellen, auf Rails 4 stoßen und sehen, was passiert. Ich brauchte einen Tag oder zwei, um vor ein paar Wochen auf einer ziemlich kleinen (aber Produktion-mit-Kunden) Anwendung von 3.2 auf 4 zu aktualisieren. Die upgrade guide ist ziemlich solide.

8

Dieses kurze Handbuch war in unserer jüngsten Migration von 3,2 auf 4 jeden Cent wert.

https://leanpub.com/upgradetorails4

https://github.com/alindeman/upgradingtorails4

Es detailliert aufgeführt, wie gem-Upgrades zu handhaben, sowie einzelne Details (mit klaren Beispielen) von dem, was sich verändert hat und wie Sie Ihre aktuellen Rails-Anwendung durch das Upgrade zu verwalten.

Um Ihre Edelstein-spezifischen Anliegen zu adressieren: Fast alle unsere über 40 Edelsteine, außer vielleicht 5, hatten entweder Rails 4-Versionen (oder Github-Zweige für Rails 4) oder funktionierten gut mit Rails 4, wenn sie intakt blieben.

Eine gesunde Einheit/funktionale Testsuite in Ihrer Codebasis wäre entscheidend für Ihr Vertrauen in das erfolgreiche Upgrade.

+0

Dieser Link wird jetzt zu einer Link-Farm weitergeleitet! – tronmcp

+0

Ah. Das Buch wurde kürzlich Open-Source. Die Links in der Antwort geändert, um auf die neue Quelle und Github Repo zu zeigen. – changingrainbows