Ruby on rails 雷克流产了!您已经激活了rake 10.0.2,但您的Gemfile需要rake 0.9.2.2
我正在尝试执行“rakedb:migrate”,它给了我这个错误Ruby on rails 雷克流产了!您已经激活了rake 10.0.2,但您的Gemfile需要rake 0.9.2.2,ruby-on-rails,rake,Ruby On Rails,Rake,我正在尝试执行“rakedb: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
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)
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:警告:路径中的不安全世界可写目录/usr,模式040777
雷克流产了!
您已经激活了rake 10.0.2,但您的文件需要rake 0.9.2.2。使用bundle exec可以解决这个问题。
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:31:在“设置中的块”中
/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`'
/Users/Andy/Desktop/AcademyAir/config/boot.rb:6:in`'
/Users/Andy/Desktop/AcademyAir/config/application.rb:1:in`'
/Users/Andy/Desktop/AcademyAir/Rakefile:5:in`'
(通过使用--trace运行任务查看完整跟踪)
试试这个bundle exec rake db:migrate
移除rake 10.0.2 gem
使用gem卸载rake
并删除rake-gem的10.0.2
版本
然后尝试rake db:migrate
为什么会出现错误:在gem中列出两个版本(10.0.2和0.9.2.2)的rake gem安装,以便出现此错误*
另一个解决方案是您可以执行
捆绑更新我刚刚遇到了同样的问题
我在gemfilen gem的“rake”中插入了“~>10.0.1”[在您的示例中,它应该是“10.0.2”]
我删除了我的文件锁
我再次运行了rakedb:migration,它成功了
我在这里得到了一个提示:
更新:就我而言,我没有复制rake。我的gems中只有10.0.1版本。我能够通过打开Gemfile并将gem'rake'、'~>0.9.2.2'
更改为gem'rake'、'~>10.0.1'
来解决这个问题。对于我来说,我只是运行了bundle update
,一切又正常了。在你的Gemfile
中,通过以下方式显式设置最新的rake版本:
gem 'rake', '~> 10.0.1'
然后跑
$ bundle update rake
然后尝试将gemfile和gemlock中的版本更改为控制台中显示的版本号,这将完成通过运行解决相同问题:
bundle update
这将把rakegem更新到最新版本,并允许您运行迁移
如果您正在使用gemset:请确保在更新rake以更新本地gemset之后运行bundle install
。这是因为您正在从系统中使用rake。(默认情况下为最新版本)
解决方案是使用以下命令:
bundle exec rake db:migrate
此外,还可以创建别名。因为这个命令太大,很难写
echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile
然后可以使用以下短命令:
be rake db:migrate
bundle exec rake db:migrate/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:197:warning:unsecure world writable dir/usr in PATH,mode 040777/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2/lib/bundler/runtime.rb:197:warning:unsecure:unsecure:world writable dir/usr in PATH,模式040777
现在,当我尝试rake db:migarte时,它什么也不做<代码>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:警告:路径中的世界可写目录/usr不安全,模式040777 Andy:academyair Andy$
检查您的表,可能是迁移之前运行的表,也可能是迁移在db文件夹中的迁移文件中没有表检查这两个都正常工作,但我必须在之后运行bundle安装,然后它被修复。在我的例子中,这被破坏的原因是我有两个项目与rvm共享同一个gemest。rake版本是不同的。使用不同的宝石是答案。谢谢,在搜索了很多之后,终于解决了我的问题。请查看[链接][1]。它可以解决这个问题。[1] :您应该首先删除Gemfile.lock文件并重新安装捆绑包,然后使用rake db:migrateb,但这也会更新其他gems,因此解决方法是将Gemfile.lock中的rake版本从0.9.2.2更改为10.0.1,然后运行bundle命令。