我正在尝试“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)
答案 0 :(得分:48)
试试这个bundle exec rake db:migrate
删除rake 10.0.2 gem
使用gem uninstall rake
并移除10.0.2
版本的rake gem
然后尝试rake db:migrate
为什么会出现错误:在你的宝石列表中有两个版本(10.0.2和0.9.2.2)的rake gem install,以便出现此错误。*
另一种解决方案是你可以bundle update
答案 1 :(得分:42)
对我来说,我刚刚跑了bundle update
,一切正常。
答案 2 :(得分:6)
我能够通过打开Gemfile并将gem 'rake', '~> 0.9.2.2'
更改为gem 'rake', '~> 10.0.1'
来解决此问题
答案 3 :(得分:4)
在Gemfile
中,通过以下方式明确设置最新的rake版本:
gem 'rake', '~> 10.0.1'
然后运行
$ bundle update rake
然后尝试
答案 4 :(得分:3)
我刚遇到同样的问题。
我在这里得到了这个提示:Activated Ruby RAKE 10.0.1, require 10.0.0
更新:在我的情况下,我没有rake重复。我只是拥有10.0.1版本的宝石。
答案 5 :(得分:2)
通过运行:
解决了同样的问题bundle update
这会将您的rake gem更新为最新版本,并允许您运行迁移。
如果您使用的是gemset:请务必在更新rake后运行bundle install
以更新本地gemset。
答案 6 :(得分:1)
这是因为您正在使用系统中的 rake 。 (默认为最新版本) 解决方案是使用以下命令:
bundle exec rake db:migrate
此外,您还可以创建别名。因为这个命令太大而且难以编写。
echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile
然后你可以使用follow short命令:
be rake db:migrate
答案 7 :(得分:0)
将位于gemfile和gemlock中的版本更改为控制台中显示的版本号,它将完成