2011-05-23 4 views
1

Je suivais les rails tutoriel à railstutorial.orgProblèmes d'utilisation rake db: migrer le chapitre 2 railstutorial.org

Je suis dans le chapitre 2 et ont essayé de migrer la base de données à l'aide rake selon les instructions: « Pour poursuivre l'application de démonstration, nous avons d'abord besoin de migrer la base de données à l'aide Rake (encadré 2.1) ":

$ rake db:migrate 

Cela ne fonctionne pas et je reçu l'erreur suivante:

C:\Users\USER1\rails_project\demo_app>rake db:migrate 
(in C:/Users/USER1/rails_project/demo_app) 
rake aborted! 
uninitialized constant Rake::DSL 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2482:in `const_missing' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks' 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing' 
C:/Users/USER1/rails_project/demo_app/Rakefile:7:in `<top (required)>' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `load' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile' 
C:/Ruby192/lib/ruby/1.9.1/rake.rb:1991:in `run' 
C:/Ruby192/bin/rake:31:in `<main>' 

Comment puis-je résoudre ce problème?

Répondre

2

Ceci est un problème avec la nouvelle version de rake (vient de sortir). Vous pouvez le résoudre en déclassant rake à 0.8.7. C'est la solution la plus simple pour un tutoriel. Voir Rake 0.9.0 'undefined method 'task' ' et les réponses à cette question.

+0

Merci! Cela marche. – andrewcallahan

1

Vous pourriez ajouter à votre râteau 0.8.7 Gemfile, comme:

gem 'rake', '0.8.7' 

Et dans le terminal, vous devez exécuter avec

bundle exec rake db:migrate 

Et vous êtes prêt à suivre, j'espère que cela T'aider.

+0

cela a fonctionné pour moi! –

0

Je sais que vous auriez résolu ce problème depuis longtemps, mais juste au cas où quelqu'un aurait besoin de savoir Rake .9.0 ruptures Rails et plusieurs autres choses, vous devez soit revenir à la version précédente ou mettre à jour le dernier (11.1.2):

gem "rake", "11.1.2" 

dans votre fichier Gemfile.

Et puis il suffit de suivre ces commandes:

$ bundle update rake 

Vérifiez ensuite le râteau avec:

$ bundle show rake 

Et il devrait montrer râteau 11.1.2.

Après cela, vous pouvez exécuter avec succès

$ bundle exec rake db:migrate 

(PS: Espérons que cela aide quelqu'un :))

Questions connexes