【问题标题】:How do I debug this failing rake task?如何调试这个失败的 rake 任务?
【发布时间】:2013-10-30 16:51:33
【问题描述】:

我正在运行 rake,但我看不出它失败的任何线索。我错过了什么?

undefined method `[]' for nil:NilClass
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:525:in `block (3 levels) in <top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:246:in `call'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:241:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:558:in `block (3 levels) in <top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:246:in `call'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:241:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:101:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
/Users/me/.rvm/gems/ruby-1.9.2-p320/gems/rake-10.0.4/bin/rake:33:in `<top (required)>'
/Users/me/.rvm/gems/ruby-1.9.2-p320/bin/rake:23:in `load'
/Users/me/.rvm/gems/ruby-1.9.2-p320/bin/rake:23:in `<main>'
/Users/me/.rvm/gems/ruby-1.9.2-p320/bin/ruby_executable_hooks:15:in `eval'
/Users/me/.rvm/gems/ruby-1.9.2-p320/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:test:load => db:test:purge


class AddSha2PasswordToAdminUsers < ActiveRecord::Migration
  def up
    add_column :admin_users, :md5_password, :string
    add_column :admin_users, :password_salt, :string

    Rake::Task['tmp:sessions:clear'].invoke

    AdminUser.update_all("md5_password=encrypted_password")
    AdminUser.update_all("encrypted_password=null")
  end

  def down
    remove_column :admin_users, :md5_password, :password_salt
  end

end

【问题讨论】:

  • 你能发布实际的任务吗?
  • 对不起,我只是想运行 rake
  • 它在任务的数据库准备部分爆炸了。您最近是否更改了任何与数据库配置相关的内容?这曾经奏效过吗?你试过bundle exec rake吗?
  • 它以前工作过。我添加迁移。我在上面复制了它。
  • 尝试通过bundle exec rake test:prepare重新加载您的测试数据库

标签: ruby-on-rails ruby rake rake-task


【解决方案1】:

更正我的 config/database.yml 中的错误为我解决了这个问题。

【讨论】:

  • 是的 - 对我来说它有密钥 testing: 而不是 test: - 不是一个很好的错误消息:D
猜你喜欢
  • 2016-04-17
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2019-06-05
  • 1970-01-01
相关资源
最近更新 更多