升级rails 3 app rake db:重置错误

时间:2011-01-08 11:58:46

标签: ruby-on-rails ruby-on-rails-3

我将rails 2.3.8 app升级到rails 3.当我运行rake db:reset命令时,它返回以下错误

耙子中止了! 测试单元不是捆绑包的一部分。将其添加到Gemfile。 / Users / Shenario / Desktop / stack24 / Rakefile:7:in'' (通过使用--trace运行任务查看完整跟踪)

我是铁杆的新手,如果你们出去帮助我,我们会很高兴!谢谢!

追踪 -

耙子流产了! 测试单元不是捆绑包的一部分。将其添加到Gemfile。 /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.7/lib/bundler/shared_helpers.rb:102:in block in cripple_rubygems' /Users/Shenario/Desktop/stack24/lib/tasks/rspec.rake:1:in' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in load' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in块中的load_tasks' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in each' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in load_tasks' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:141:in load_tasks' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:77:in method_missing' / Users / Shenario / Desktop / stack24 / Rakefile:7:in <top (required)>' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2383:in load' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2383:in raw_load_rakefile' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2017:in块中的load_rakefile' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2016:in load_rakefile' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2000:in block in run' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:1998:in run' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/bin/rake:31:in' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/bin/rake:19:in load' /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/bin/rake:19:in'

3 个答案:

答案 0 :(得分:4)

搜索“test-unit”后,找到了:

gem 'test-unit', '2.0.7' if RUBY_VERSION.to_f >= 1.9

在lib / tasks / rspec.rake

我怀疑这是因为我将整个lib文件夹从较旧的rails版本复制到这个新版本。

解决方案:删除该文件,然后事情似乎工作正常。

基本上我建议您查看lib / tasks并查看是否存在与rails 3不兼容的rake任务。

答案 1 :(得分:0)

你必须至少

gem "rails", "~> 3.0.3"
在你的Gemfile中

,然后删除Gemfile.lock(如果有的话)并运行:

bundle check

如果你需要一些遗失的宝石,请运行:

bundle install

bundler将至少为rails 3.0.3安装所有必需的gem,包括test-unit gem。顺便说一下,在大多数情况下从rails 2.3.x迁移到3.0.x需要进行一些代码更改。

答案 2 :(得分:0)

将其添加到Gemfile中(用所需的版本号替换VERSION)。

gem 'test-unit', 'VERSION', :platform => :ruby_19

对于Rails 2.3.11,我需要测试单元gem的1.2.3版本。