2012-03-04 12 views
5

Mi sto preparando a (tentare di) l'aggiornamento di un'applicazione Rails da 2.3.11 a 3.X, e mi chiedo quale percorso di aggiornamento gli altri raccomanderebbero. In questo momento (marzo 2012), 3.2 è l'ultima versione di Rails, ma mi chiedo se sarei più adatto a puntare a una versione precedente per minimizzare il dolore dell'aggiornamento.Aggiornamento a Ruby on Rails 3.0, 3.1 o 3.2 da 2.3.11?

In particolare, vorrei evitare di sovrascrivere il marchio su deprecazioni e supporto legacy. Ad esempio, se ci sono parti di legacy ActiveRecord che sono deprecate in 3.1 e rimosse in 3.2, penso che preferirei andare per 3.1 o anche 3.0.

configurazione attuale:

  • Rails 2.3.11
  • di Ruby 1.8.7 (ree-1.8.7-2012.01 in produzione)
  • già aggiornato a Bundler

Se qualcuno ha attraversato questo e potrebbe indicare una versione specifica per il target, che sarebbe di grande aiuto.

+1

In genere mordo il proiettile e aggiorno il più lontano possibile. Un salto più breve nella versione può alleviare il dolore a breve termine, ma potrebbe lasciare un altro aggiornamento in pochi mesi. –

risposta

2

L'ho appena fatto e ho trovato molto utile adottare un approccio incrementale e lavorare con tutti gli avvisi di deprecazione durante l'aggiornamento. Se si dispone di una buona copertura di test, è possibile esaminare gli avvisi di ritiro che vengono emessi durante l'esecuzione della suite di test. In caso contrario, sarà necessario esaminare attentamente i log del server per gli avvisi di deprecazione. Una cosa che mi ha morso è stata la modifica ERB dall'uso di <% a <% = per i blocchi di contenuto quando abbiamo eseguito l'aggiornamento da 3.0 a 3.1 perché fallirebbero silenziosamente.