Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

'Freezare' la versione di Rails evita spiacevoli imprevisti

Quando mettete in produzione un progetto Rails, è consigliato congelare la versione di Rails al suo interno.
Quando mettete in produzione un progetto Rails, è consigliato congelare la versione di Rails al suo interno.
Link copiato negli appunti

Era da inizio dell'anno che non accedevo più a quel dominio. Ci ho installato sopra la versione 0.7.3 di Redmine che uso per lo sviluppo dei miei progetti, sia quelli open source sia quelli privati.

Ieri tento di accedere al sito e scopro, con mio stupore, un malinconico avviso di mod_rails che mi avvisa che la GEM Rails 2.0.2 non è disponibile. Come è possibile? Fino a qualche tempo fa c'era... che è successo?!?

Quell'installazione è l'unica mia applicazione Rails che risiede su uno shared host e non su un VPS dunque non ho il controllo diretto delle GEM. Scopro che il provider ha deciso di aggiornare a Rails 2.0.2, senza tenere in considerazione che RubyGEMS permette più versioni della stessa libreria nativamente e che, rimuovere una GEM come Rails, potrebbe invalidare diverse installazioni.

Così è stato! Rails 2.0.2 è stato rimosso, tra l'altro senza alcun avviso via email, e la mia applicazione è morta inesorabilmente al primo riavvio di Apache. Inutili sono stati gli sforzi nel tentativo di rianimarla.

L'unica alternativa è stata freezare la versione di Rails dentro all'applicazione:

$ cd redmine
$ rake rails:freeze:edge REVISION=2.0.2

Che stupido sono stato a non pensarci prima. Così semplice, così sicuro. Che mi serva di lezione.

Quando mettete in produzione un progetto Rails, è consigliato congelare la versione di Rails al suo interno. Se poi siete su uno shared host, è molto più che un consiglio.

Ti consigliamo anche