2013-12-21 2 views
8

Я получаю ошибкуграбли БД: мигрировать в настоящее время прервана из-за разницы рейк версии

rake db:migrate --trace 
rake aborted! 
You have already activated rake 10.1.1, but your Gemfile requires rake 10.1.0. Using bundle exec may solve this. 
/Users/iang/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:33:in `block in setup' 
/Users/iang/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:19:in `setup' 
/Users/iang/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup' 
/Users/iang/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/setup.rb:7:in `<top (required)>' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `require' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `rescue in require' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:122:in `require' 
/Users/iang/code/Projects/work/startco/config/boot.rb:4:in `<top (required)>' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
/Users/iang/code/Projects/work/startco/config/application.rb:1:in `<top (required)>' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
/Users/iang/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
/Users/iang/code/Projects/work/startco/Rakefile:4:in `<top (required)>' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/rake_module.rb:25:in `load' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/rake_module.rb:25:in `load_rakefile' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:637:in `raw_load_rakefile' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:94:in `block in load_rakefile' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:165:in `standard_exception_handling' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:93:in `load_rakefile' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:77:in `block in run' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:165:in `standard_exception_handling' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/lib/rake/application.rb:75:in `run' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.1.1/bin/rake:33:in `<top (required)>' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/bin/rake:23:in `load' 
/Users/iang/.rvm/gems/ruby-2.0.0-p247/bin/rake:23:in `<main>' 

использовал связку и не решить эту проблему ... любые идеи, как помочь решить эту проблему?

+1

пропустил часть «exec», запуская «bundle exec rake db: migrate» работал – iang

ответ

14

Вы хотите использовать bundle exec:

bundle exec rake db:migrate 

Или, если вы используете Rails 4 binstubs:

./bin/rake db:migrate 
+1

Не могли бы вы помочь мне разобраться в характере сообщения об ошибке? В моих приложениях rails обычно выполняется команда 'rake', которая работает нормально, но в недавнем учебном проекте я столкнулся с этой проблемой и не понимаю, почему (Rails 4.0.1, Ruby 2.0.0, Gem 2.0.3 работает на Ubuntu 12.04). Неужели я невольно активировал новый рейк? (Как это сделать?) И почему это путает интерпретатор/Gemfile? –

+0

Конечно. Драгоценные камни имеют разные версии (как вы знаете). Приложение Rails запрашивает версию Rake x, но версия Rake y является первой в пути загрузки. Поэтому Ruby не может активировать правильную версию. Бундлер решает это. – sethvargo

30

Я ударил ту же ошибку. Запуск bundle update решил.

Обновление: Как предложено TuK bundle update rake - это путь.

+1

+1 yup same here – Yarin

+2

Yep - это разрешает сообщение об ошибке несоответствующей версии. Это правильный ответ! –

+3

Выполнение 'bundle update' может обновить больше, чем нужно. Выполнение 'пакетного обновления рейка' будет только обновлять рейк. – TuK

4

Я получил это сообщение об ошибке при развертывании на производство с capistrano. Чтобы исправить это я выполнил следующие действия на моем сервере производства:

gem update rake 
+0

Я использовал 'gem uninstall rake'. Вам будет предложено удалить версию. что помогло мне вернуться к 10.1.0. В любом случае идея Гудфеллоу помогла мне найти это, так что +1 – semiomant

0

Вы можете запустить эту команду

bundle exec rake db:migrate 
0

bundle update rake исправили проблему для меня.

-1

просто установить старую версию с помощью команды: камень установить Rake -V '10 .1.0'

0

я имел ту же ошибку, но работает bundle update rake не работает для меня. Этот answer работал для меня. Вы должны удалить Gemfile.lock:

rm Gemfile.lock 

затем повторно расслоением:

bundle install 
0

я получил ответ. Почему мы получили эту ошибку? Для версии рейка нашей ОС отличается от версии нашего проекта. Когда мы устанавливаем то же самое. Все в порядке!

Светлый путь установлен в той же версии в нашем Gemfile. И убедитесь, что все проекты одинаковы!

gem 'rake', '10.2.2' #forking error! force the version the same with our OS and all projects!!! 

Надеюсь, что я посмотрю, что я сказал, и настоящая причина этой ошибки. Тогда у нас будет больше разрешений, таких как «расслоение обновления пакета». Благодаря!