你已经激活了rake 0.9.0,但你的Gemfile需要rake 0.8.7

Muj*_*key 122 rake ruby-on-rails

我正在尝试运行rails项目

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Run Code Online (Sandbox Code Playgroud)

如果我这样做:"捆绑安装"

但我得到了

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7
Run Code Online (Sandbox Code Playgroud)

在做的时候

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

dan*_*neu 242

首先,检查以确保Gemfile中提到了rake.如果不是,请添加它,并指定"您已激活"的版本.

然后,您需要告诉bundle更新它为您的应用程序使用的rake版本:

bundle update rake
Run Code Online (Sandbox Code Playgroud)

它会Gemfile.lock为你更新你的.

  • 我不得不在我的gemfile中添加gem'rake','version#',并为我的gemfile.lock运行'bundle update rake'以正确更新.对于那些无法让这个解决方案为他们工作的人而言. (5认同)
  • 这对我不起作用.当我运行这个命令时,它与'bundle install'完全相同,它表明它使用相同的rake版本.它没有更新它. (2认同)

小智 43

您当前正在使用rake命令的位置

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

请改用:

bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)

直到最新版本的导轨和/或耙子一起工作时才会出现这种情况.

  • 关于"轨道和/或耙子的最新版本"在一起工作的位只在特定的,未命名的时间点以及关于使用中的工作流程的某些特定假设下具有意义.我认为这意味着"你正在使用前沿的铁轨,而耙子尚未赶上." 但是这种情况也可以通过"捆绑exec"或"编辑Gemfile"方法来解决,并且这些方法也解决了当没有内在兼容性问题时的问题,而只是一个混乱的工作流历史. (3认同)

Muj*_*key 23

我感谢Dobry Den,欢呼老兄.但我不得不这样做.这是解决方案(适合我).我补充说

gem 'rake','0.8.7'
Run Code Online (Sandbox Code Playgroud)

在Gemfile上,它不存在,但我的新版本的rails自动安装rake(0.9.0).

在我gem uninstall rake 执行之后删除rake0.9.0 之后bundle update rake,我可以创建和迁移数据库.


sj2*_*j26 8

Rake 0.9.0打破了铁轨.

看到这里:Rake 0.9.0'未定义方法'任务''

使用bundle exec rake而不是以rake正确的版本运行rake.


hac*_*nal 8

在Gemfile中指定所需的版本.

gem 'rake', '0.9.0' 
Run Code Online (Sandbox Code Playgroud)

然后

bundle update rake
Run Code Online (Sandbox Code Playgroud)

你需要使用bundle exec来运行你的rake任务

bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)


sub*_*git 6

哦,看,这是未来.对我来说,它抱怨我在需要0.9.5时安装了rake 10.x. 不太确定,不熟悉Ruby,真正深入了解最近的版本号发生了什么,但我做的是:

gem uninstall rake
gem install rake -v 0.9.5
Run Code Online (Sandbox Code Playgroud)

强制系统安装应用程序所需的rake版本(对我来说是Octopress).

  • 未来呼唤,它想借你的Hammer裤子. (2认同)

小智 5

我有这个问题(另一个不是耙子的宝石)我能够解决它

gem uninstall <complaining gem>
gem install <complaining gem>

bundle install
bundle update
Run Code Online (Sandbox Code Playgroud)

请注意,未使用关键字"sudo"(即sudo bundle install),因为这可能会将gem放入rails应用程序可能无法搜索的目录中.