J'ai une application Rails 3.0 (techniquement 3.0.7) que j'aimerais mettre à jour vers Rails 3.1 pour utiliser le nouveau pipeline d'actifs et d'autres nouvelles fonctionnalités fantaisistes. Quelle est la meilleure approche pour y parvenir ? Dois-je utiliser le rails new
puis de copier tout ce qui se trouve dans mon ancienne application dans la nouvelle ? Qu'en est-il du contrôle de version ? Mon ancienne application utilise déjà Git.
Réponses
Trop de publicités?Je viens de mettre à jour une de mes applications de 3.0.9 à 3.1.0, voici mon approche, votre kilométrage peut varier :
Modifier le fichier Gemfile, changer la version de Rails gem
gem 'rails', '3.1.0'
Ajoute également les nouvelles gemmes introduites dans la version 3.1.0
group :assets do
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
courir bundle update rails
Exécutez ensuite rake rails:update
et résoudre les conflits.
Déplacez vos css/javascript/images etc. vers app/assets
assurez-vous qu'il y a un dossier application.js
et un application.css
(vous voudrez peut-être jeter un coup d'œil à ces deux fichiers dans les projets 3.1.0 nouvellement créés)
Incluez des liens css/javascript dans votre fichier de mise en page comme suit
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
Se familiariser avec rails 3.1, voici les ressources : http://jasonrudolph.com/blog/2011/06/06/helpful-resources-for-upgrading-to-rails-3-1/
La chose la plus importante est votre test actuel, assurez-vous que vous avez une bonne couverture de test de votre application 3.0 avant de commencer.
Créez une nouvelle branche dans votre dépôt Git.
Jetez un coup d'œil à la Exemples d'applications Rails 3.1 si vous utilisez Devise, RSpec ou Cucumber car ils vous fourniront une bonne implémentation de référence. Si ce n'est pas le cas, utilisez simplement rails new
pour créer une application Rails 3.1 simple.
Utilisez ensuite un outil de comparaison de fichiers (tel que FileMerge ou Changes sur Mac OS X) pour identifier les différences entre le code Rails 3.1 et votre application 3.0.
Je viens de le faire aujourd'hui avec une application de la version 3.0.9. Jetez un coup d'œil à ce blog, c'est assez simple.
http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html
Il s'agit juste de changer le fichier gem, quelques variables de configuration, de déplacer quelques assets et de créer quelques fichiers manifestes css et js, ce qui ne devrait pas prendre plus d'une heure.
Copier cette gemme dans votre fichier gem en remplaçant l'ancienne par la suivante gem 'rails', '3.1.0'
group :assets do
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
Il vous suffit de lancer rake rails:update
vous pouvez également exécuter rake -T
pour voir quelques tâches de ratissage cool dont vous auriez besoin