Dav*_*veR 36 ruby-on-rails ruby-on-rails-3.2
似乎这个问题的最后一篇文章因某种原因而被关闭所以我会试试运气......
我正在尝试运行一个简单的"rake db:migrate"命令.当我这样做时,我在标题中得到错误.是的,解决方案"显得"显而易见但不是因为我的Rakefile不包含任何对'rake/rdoctask'的引用.它似乎来自documentation.rake但是当我尝试按照错误的建议更改该文件时,我得到了一个不同的错误.我发现有几个帖子宣称这是一个已知问题,但我发现的任何内容都没有说明如何修复或解决这个问题.
有没有人有任何想法如何解决它?以下是带有--trace的rake命令的输出:
$ rake --trace db:migrate
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rdoctask.rb:1:in `<top (required)>'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `require'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks/documentation.rake:2:in `<top (required)>'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `load'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:15:in `block in <top (required)>'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `each'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/tasks.rb:6:in `<top (required)>'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `require'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:213:in `initialize_tasks'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:139:in `load_tasks'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
C:/developer/skknobara/Rakefile:7:in `<top (required)>'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `load_rakefile'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:583:in `raw_load_rakefile'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:89:in `block in load_rakefile'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:88:in `load_rakefile'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:72:in `block in run'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:70:in `run'
C:/Programs/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/bin/rake:33:in `<top (required)>'
C:/Programs/Ruby193/bin/rake:23:in `load'
C:/Programs/Ruby193/bin/rake:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我发现我的Gemfile中有rails 3.0.3所以我将其更改为3.2.9,但现在当我运行rake db:migrate时我得到:
rake aborted!
Bundler could not find compatible versions for gem "rack":
In Gemfile:
rails (= 3.2.9) x86-mingw32 depends on
rack (~> 1.4.0) x86-mingw32
rack (1.2.5)
Run Code Online (Sandbox Code Playgroud)
我不确定错误意味着什么,但"gem list rack"显示我安装了1.4.1和1.4.0.我的Gemfile非常简单:
gem 'rails', '3.2.9'
gem 'rack','< 1.4.1'
gem 'mysql2', '< 0.3'
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
Gir*_*ndi 62
我有使用rails 2.3.5的类似问题,因此我在编辑Rakefile的跟踪消息中指示需要'rdoc/task'而不是rake/rdoctask并安装了rdoc gem.
如果您使用的是rake版本> 10.0.0.请编辑您的Rakefile
从:
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
Run Code Online (Sandbox Code Playgroud)
至:
require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'
Run Code Online (Sandbox Code Playgroud)
如果您不想编辑Rakefile,可以像这样切换回较旧版本的
gem uninstall rake -v 10.0.3
gem install rake -v 0.8.7
Run Code Online (Sandbox Code Playgroud)
dan*_*jel 22
我将旧应用程序迁移到rails 2.3.15时遇到了类似的问题.我通过安装旧版本的rake并卸载当前的10.0.3版本解决了这个问题:
gem install rake --version 0.8.7
gem uninstall rake --version 10.0.3
Run Code Online (Sandbox Code Playgroud)
我通过推杆让它工作
宝石'耙','0.9.2.2'
在我的Gemfile中然后运行rake as
bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)
我不得不解决这个问题,而不是打破旧rake但没有安装rdoc的地方.我添加了一个开始......救援条款:
begin
require 'rake/rdoctask'
rescue
require 'rdoc/task'
end
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题......我做了GiridharBandi上面提到的:
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
Run Code Online (Sandbox Code Playgroud)
至:
require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'
Run Code Online (Sandbox Code Playgroud)
Rake版本10.0.4在gem列表中,但是当我尝试卸载时,它说没有安装rake.所以我忽略了这一点并继续安装rake 0.8.7.一旦安装完毕,我安装了rdoc
gem install rdoc
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Run Code Online (Sandbox Code Playgroud)
然后一切都开始正常工作.
对于rails 3.0.6,具有相同类型的错误:
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
Run Code Online (Sandbox Code Playgroud)
我安装了rake 0.9.2和rdoc.注释掉#require'tasks/rails'然后一切都开始工作了.我认为在rails> 3.2.9中解决了rake问题.
| 归档时间: |
|
| 查看次数: |
43379 次 |
| 最近记录: |