12

Ho un'applicazione in Rails 3.2 che è pronta per la distribuzione. Mi chiedo se dovrei aggiornarlo a Rails 4 o no. Inoltre non sono sicuro di quale delle gemme possa causare problemi durante l'aggiornamento.Aggiornamento da Rails 3.2 a Rails 4

Di seguito è il mio Gemfile con diverse gemme comuni.

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 

ho iniziato a lavorare su questa domanda l'anno scorso (novembre 2012), dopo aver letto questo grande libro a http://ruby.railstutorial.org/. Ho anche verificato cosa c'è di nuovo in Rails 4 come parametri forti ed è molto allettante provare un aggiornamento.

Ma sono preoccupato per la compatibilità di queste gemme e lo sforzo che potrebbe richiedere.

Ho bisogno di un consiglio da ragazzi esperti della comunità o qualcuno che ha provato l'aggiornamento prima di andare avanti.

risposta

28

Ho caricato il tuo gemfile su Ready for Rails 4 e sembra che tu abbia solo un paio di gemme che non sono pronte e una gemma sconosciuta. Per alcune delle gemme elencate che non hanno note, suggerirei di controllare la loro pagina GitHub (se ne hanno una), e vedere se la gemma è stata aggiornata di recente su rubygems, solo per confermare se la gemma funziona o meno.

4

La pipeline di asset è leggermente cambiata, quindi è necessario aggiornare quelle gemme. Ho dovuto usare una fork of ransack nel contesto di active_admin, ma potrebbe andare bene.

Si consiglia di creare un ramo, eseguire un urto su Rails 4 e vedere cosa succede. Mi ci sono voluti un giorno o due per aggiornare da 3.2 a 4 un paio di settimane fa su un'applicazione abbastanza piccola (ma di produzione con i clienti). Il upgrade guide è abbastanza solido.

8

Questo breve manuale valeva ogni centesimo nella nostra recente migrazione da 3.2 a 4.

https://leanpub.com/upgradetorails4

https://github.com/alindeman/upgradingtorails4

Elenca in dettaglio come gestire gli aggiornamenti di gemme, così come i singoli dettagli (con esempi chiari) di che cosa è cambiato e come gestire il vostro attuale applicazione Rails attraverso l'aggiornamento.

di risolvere i problemi specifici del gioiello: Quasi tutti i nostri 40 + gemme, tranne forse 5, aveva attivi sia Rails 4 uscite (o rami Github per Rails 4), o ha lavorato molto bene con Rails 4 quando lasciato intatto.

Avere una suite di test funzionale/funzionale nella propria base di codici sarebbe fondamentale per la vostra fiducia nell'aggiornamento.

+0

Questo link va a una fattoria di collegamento ora! – tronmcp

+0

Ah. Il libro è stato di recente open source. Link modificati in risposta per puntare alla nuova fonte e al repository Github. – changingrainbows