2011-09-02 4 views
9

J'ai une application Rails 3.0 (techniquement 3.0.7) que je voudrais mettre à niveau vers Rails 3.1 pour utiliser le nouveau pipeline d'actifs et d'autres nouvelles fonctionnalités. Quelle est la meilleure approche pour le faire? Dois-je utiliser le générateur rails new, puis copier tout de mon ancienne application sur le nouveau? Qu'en est-il du contrôle de version? J'ai déjà mon ancienne application en utilisant Git.Comment mettre à niveau une application Rails 3.0 vers Rails 3.1?

Répondre

10

Juste un de mes modernisés applications de 3.0.9 à 3.1.0, voici mon approche, peut varier votre kilométrage:

Modifier Gemfile, changer Rails version bijou

gem 'rails', '3.1.0' 

ajoute également de nouvelles gemmes introduit dans 3.1.0

group :assets do 
    gem 'sass-rails', "~> 3.1.0" 
    gem 'coffee-rails', "~> 3.1.0" 
    gem 'uglifier' 
end 
gem 'jquery-rails' 

run bundle update rails

Ensuite, exécutez rake rails:update et résolvez les conflits.

Déplacez votre css/javascript/images etc dans le dossier app/assets, assurez-vous qu'il ya un application.js et un fichier application.css (vous voudrez peut-être jeter un oeil à ces deux nouvellement créés de projets 3.1.0)

Inclure css/liens javascript dans votre fichier de mise en page comme celui-ci

<%= stylesheet_link_tag "application" %> 
<%= javascript_include_tag "application" %> 
+2

Il serait sans doute une bonne idée de mettre à jour RVM à la dernière version: 'rvm get latest' ou en exécutant le script d'installation à nouveau si RVM est trop vieux, puis mettre à jour RubyGems:' gem update --system', puis mettre à jour bundler: 'gem install bundler' – Andrew

+1

J'ai eu quelques conflits quand je J'ai couru 'bundle update rails' donc j'ai dû exécuter' bundle update' à la place – Andrew

+1

En ce qui concerne le répertoire des assets , Je viens de créer une application 3.1 fictive et copié la structure du répertoire des actifs sur mon ancienne application – Andrew

1

Créez une nouvelle branche dans votre dépôt Git.

Jetez un oeil à la Rails 3.1 Example Apps si vous utilisez génie, RSpec ou concombre, car ils vous donneront une bonne mise en œuvre de référence de travail. Sinon, 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 Modifications sur Mac OS X) pour identifier les différences entre le code Rails 3.1 et votre application 3.0.

0

copie ce gemmes à votre fichier de pierres précieuses remplaçant l'ancienne fois petit bijou « rails », « 3.1.0'

group :assets do 
    gem 'sass-rails', "~> 3.1.0" 
    gem 'coffee-rails', "~> 3.1.0" 
    gem 'uglifier' 
end 

Tout ce que vous devez faire est de lancer rake rails:update

vous pouvez également exécuter rake -T pour voir une tâche de coupe fraîche que vous avez besoin

Questions connexes