web-dev-qa-db-fra.com

Mise à niveau de Rails 3 vers Rails 3.1

Comment passer de Rails 3 à Rails 3.1 beta)?

61
user730569

C'est ce qui a fonctionné pour moi lors de la mise à jour d'un projet Rails 3.0.8 existant. Votre kilométrage peut varier ...

Mettre à jour la version Rails spécifiée dans mon Gemfile pour utiliser la dernière version candidate:

gem 'Rails', '3.1.0.rc4’

Mettez à jour le bundle:

bundle update

Mettez ensuite à jour le projet avec la commande rake:

rake Rails:update

Après avoir choisi les cerises si le changement était en conflit, j'ai exécuté tous mes tests et ils ont réussi (ouais!). J'ai redémarré le serveur et tout semble bien pour l'instant.

Cependant, cela n'utilise pas encore le nouveau pipeline d'actifs. J'entends par là que les fichiers javascript et css (ou sass) sont toujours traités de la manière pré-pipeline. Si je comprends bien, c'est une option parfaitement viable. Mais bien sûr, je veux la nouvelle qualité, donc je crois que les prochaines étapes consistent à inclure et des gemmes supplémentaires (par exemple coffeescript, sass, uglifier, etc.) puis à migrer les anciens fichiers vers le répertoire app/assets.

J'ai trouvé quelques détails à ce sujet ici:

http://blog.nodeta.com/2011/06/14/Rails-3-1-asset-pipeline-in-the-real-world/

J'espère que cela vous a été utile.

54
Jeff Johnston

Je viens de passer de 3.0 à 3.1 en changeant mon Gemfile en:

gem 'Rails', '3.1.0.rc1'
gem 'sqlite3'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'

J'ai également commenté la ligne suivante ci-dessous dans config/environnements/development.rb

# config.action_view.debug_rjs = true

Enfin, assurez-vous d'activer le pipeline d'actifs dans config/application.rb

config.assets.enabled = true

Je ne sais pas si vous avez déjà lu les notes de version http://weblog.rubyonrails.org/2011/4/21/jquery-new-default

28
Jon M.
24
bor1s

Mise à niveau des rails

Mise à jour : soyez prudent en utilisant votre râteau système, car le râteau a été mis à jour.

bundle exec rake

garantit que vous utiliserez le râteau correct pour un projet Rails project ( source )


Je suggère de commencer avec une nouvelle application, puis de copier les informations de votre application spécifique tout en déplaçant vos ressources dans le nouveau format d'actif/sprockets.

Un exemple

Lors de la conversion d'une ancienne application Rails 2.3.4 en 3.0, je me suis écrasé et gravé en changeant un fichier à la fois dans le projet. Inutile de dire que c'était une stratégie défectueuse, mais j'ai appris une J'ai fini par sauter 3.0 et passer à 3.1beta1 avec une nouvelle application, et j'ai copié mon application et mes dossiers publics après avoir effectué les bonnes migrations. Cette décision avait quelques problèmes en suspens, le plus important étant que je ne l'ai pas fait n'utilisez pas Rails Edge pour créer la nouvelle application (merci pour l'astuce RubyInside).

Accrochez d'abord le dernier Rails dans un emplacement facile à référencer:

cd ~/goodtimes

git clonehttps://github.com/Rails/rails.git

Mon chemin comprend un ~/Desktop/Dropbox/donc mon code est disponible partout.

Référez-vous ensuite à cela Rails exec pour construire une nouvelle application:

~/goodtimes/Rails/bin/Rails new bacon --Edge

Selon la complexité de votre base de données, vous souhaiterez soit créer de nouvelles migrations à l'aide de la syntaxe de changement, soit les laisser:

 class CreatePosts < ActiveRecord::Migration
    def change
      create_table :posts do |t|
        t.string :title
        t.text :body

        t.timestamps
      end
    end
  end

J'ai eu un problème de déploiement sur Heroku, mais la gemme RubyRacer a aidé à résoudre ce problème. Voici un exemple de fichier Gem simple:

source 'http://rubygems.org'

gem 'Rails', :git => 'git://github.com/Rails/rails.git'

gem 'sqlite3'

# Asset template engines
gem 'sass'
gem 'coffee-script'
gem 'uglifier'

gem 'jquery-Rails'
gem 'pg'
gem 'therubyracer-heroku', '0.8.1.pre3', :platforms => :Ruby

# Use Unicorn as the web server
# gem 'Unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'Ruby-debug19', :require => 'Ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

Je pense qu'il y aura des utilitaires de communauté pour vous aider à automatiser la migration des anciennes versions de Rails vers --Edge.

Les références:

  1. Comment jouer avec Rails 3.1, CoffeeScript et All That Jazz en ce moment
  2. Les quatre cavaliers de Rails 3.1beta, Coffee-Script, jQuery, SCSS et Assets
  3. Rails 3.1beta déployé sur Heroku depuis votre iPhone
  4. Migrations réversibles
13
Mark Essel

Je recommande de mettre à jour votre Gemfile pour utiliser Edge Rails. Par exemple:

gem 'Rails',     :git => 'git://github.com/Rails/rails.git'
gem 'arel',      :git => 'git://github.com/Rails/arel.git'
gem 'rack',      :git => 'git://github.com/rack/rack.git'
gem 'sprockets', :git => 'git://github.com/sstephenson/sprockets.git'

gem 'sqlite3'

# Asset template engines
gem 'sass', '~> 3.1.0.alpha'
gem 'coffee-script'
gem 'uglifier'

Vous pouvez en savoir plus ici http://pogodan.com/blog/2011/04/24/easy-Edge-Rails .

3
twmills

http://railscasts.com/episodes/282-upgrading-to-Rails-3-1

cette diffusion sur rail pourrait aider!

2
Rushabh Ajay Hathi

Ceci est un très bon guide qui explique en détail l'installation de Rails 3.1:

http://railsapps.github.com/installing-Rails-3-1.html

1
Josh Delsman

Si j'ai bien compris votre question, voici comment:

gem install Rails --pre
1
abalogh

Mettre à niveau une application Rails 3.0.7 et 3.0.9 à l'aide de ce guide a fonctionné pour moi

http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-Rails-application-to-version-3-1-0.html

Vous pouvez ignorer les étapes 3 et supérieures si vous le souhaitez - cela fonctionnera toujours, bien que vous ne profitiez pas de toutes les nouveautés de Rails 3.1.

0
spnkr