2012-11-21 56 views
26

我想要做“耙db:迁移”,它给了我这个错误。耙子中止!你已经激活耙10.0.2,但你的Gemfile需要耙0.9.2.2

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

获取看看[链接] [1]。它可以解决问题。 [1]:http://stackoverflow.com/questions/13400587/activated-ruby-rake-10-0-1-require-10-0-0/13418530#13418530 – adcosta

+0

可能的重复[你已经激活了rake 0.9.0,但是你的Gemfile需要rake 0.8.7](http://stackoverflow.com/questions/6080040/you-have-already-activated-rake-0-9-0-but-your -gemfile-requires-rake-0-8-7) – user456584

回答

48

试试这个bundle exec rake db:migrate

删除耙10.0.2宝石

通过使用gem uninstall rake,并删除10.0.2版本耙宝石

,然后尝试rake db:migrate

为什么错误c omes:耙宝石在你的宝石列表中的两个版本(10.0.2和0.9.2.2)安装,使这个错误出现*

另一种方法是你可以做bundle update

+0

不工作也试过,也是 – Andy

+0

''bundle bundle rake db:migrate /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb:197:警告:PATH中不安全的可写dir/usr,模式040777 /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb:197:警告:不安全的世界可写d ir/usr在PATH中,模式040777''' – Andy

+0

我更新我的代码尝试 –

3

我刚刚碰到了。一样的问题。

  1. 我插在我gemfilen宝石 '耙', '〜> 10.0.1'[在你的情况应该是'10 .0.2' ]
  2. 我删除了我的Gemfile锁定
  3. 我跑耙数据库:再次迁移,它的工作。

我在这里得到了这个提示:Activated Ruby RAKE 10.0.1, require 10.0.0

更新:在我来说,我并没有耙复制。我只是在我的宝石10.0.1版本。

6

我能够通过开放的Gemfile,改变gem 'rake', '~> 0.9.2.2'gem 'rake', '~> 10.0.1'

+0

也适合我!谢谢! – danwit

42

为我解决这个问题,我只是跑bundle update,一切便又工作。

+4

这也适用于我 – Neikos

+0

但这也会更新其他宝石,所以解决这个问题的方法是将Gemfile.lock中的rake版本从0.9.2.2更改为10.0.1,然后运行bundle命令。 – Sivan

+3

具体来说,'捆绑包更新耙' – user456584

4

在你Gemfile,明确设定的最新耙版本:

gem 'rake', '~> 10.0.1' 

然后运行

$ bundle update rake 

然后尝试

+1

ou应该首先删除您的Gemfile.lock文件并再次捆绑安装,然后使用 rake db:migrate –

0

改变其位于无论是在Gemfile中和gemlock版本到控制台中显示的版本号,它将完成

2

运行解决同一个问题:

bundle update 

这将更新您的耙宝石到最新版本,并允许您运行迁移。

如果您使用的是gemset:在更新rake更新本地gemset后,请务必运行bundle install

1

发生这种情况是因为您正在使用系统中的rake。 (默认为最新版本) 的解决方法是使用如下命令:

bundle exec rake db:migrate 

此外,您还可以创建别名。因为这个命令太大,难以编写。

echo "alias be='bundle exec'" >> ~/.bash_profile 
source ~/.bash_profile 

然后你可以使用遵循简短的命令:

be rake db:migrate