「rake db:migrate」を実行しようとしていますが、このエラーが発生しています。
Andy:AcademyAir Andy$ rake db:migrate
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777
rake aborted!
You have already activated rake 10.0.2, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:31:in `block in setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:17:in `setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler.rb:116:in `setup'
/Users/Andy/.rvm/gems/Ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/setup.rb:7:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/config/boot.rb:6:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/config/application.rb:1:in `<top (required)>'
/Users/Andy/Desktop/AcademyAir/Rakefile:5:in `<top (required)>'
(See full trace by running task with --trace)
これを試してくださいbundle exec rake db:migrate
rake 10.0.2 gemを削除
gem uninstall rake
を使用し、10.0.2
バージョンのrake gemを削除する
そして、rake db:migrate
を試してください
エラーが発生する理由:gemリストに2つのバージョン(10.0.2および0.9.2.2)のrake gemインストールが含まれているため、このエラーが発生します。*
別の解決策は、bundle update
を実行できることです
私にとっては、ただbundle update
そして、すべてが再び正しく機能します。
これを解決するには、Gemfileを開いてgem 'rake', '~> 0.9.2.2'
からgem 'rake', '~> 10.0.1'
Gemfile
で、次の方法で最新のレーキバージョンを明示的に設定します。
gem 'rake', '~> 10.0.1'
そして、実行します
$ bundle update rake
それから試して
私はちょうど同じ問題に遭遇しました。
ここにこのヒントがあります: Activated Ruby RAKE 10.0.1、require 10.0.
更新:私の場合、レーキは複製されていませんでした。私のgemsには10.0.1バージョンがあります。
以下を実行して同じ問題を解決しました:
bundle update
これにより、rake gemが最新バージョンに更新され、移行を実行できるようになります。
Gemsetを使用している場合:rakeを更新した後にbundle install
を実行して、ローカルgemsetも更新してください。
システムからrakeを使用しているために発生します。 (デフォルトでは最新バージョン)解決策は次のコマンドを使用することです:
bundle exec rake db:migrate
また、エイリアスを作成することもできます。このコマンドは大きすぎて記述が難しいためです。
echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile
その後、次の短いコマンドを使用できます。
be rake db:migrate
gemfileとgemlockの両方にあるバージョンを、コンソールに表示されているバージョン番号に変更します。