Ruby on rails heroku run rake db:migrate在控制台中键入时可以正常工作,但在通过rake任务运行时不能正常工作

Ruby on rails heroku run rake db:migrate在控制台中键入时可以正常工作,但在通过rake任务运行时不能正常工作,ruby-on-rails,heroku,rake,dbmigrate,Ruby On Rails,Heroku,Rake,Dbmigrate,我有以下任务: task :migrate_test => :environment do puts 'Running database migrations ...' puts `heroku run rake db:migrate --app my-app` end 当我在控制台中运行heroku run rake db:migrate--app my app时,迁移成功进行。但是,当我运行rake migrate\u test时,我收到以下错误: 我相信这与rake

我有以下任务:

task :migrate_test => :environment do
   puts 'Running database migrations ...'
   puts `heroku run rake db:migrate --app my-app`
end
当我在控制台中运行heroku run rake db:migrate--app my app时,迁移成功进行。但是,当我运行
rake migrate\u test
时,我收到以下错误:




我相信这与rake在另一个进程中运行任务有关,该进程无法找到路径,但无法找到解决方法。

您的代码没有问题。看


只需更新rubygems和RVM。或者更好:使用

解决方案是升级Heroku工具带。我仍然收到一个错误
/Users/Will/.rvm/gems/ruby-1.9.3-p194@global/bin/rake:没有这样的文件或目录
,但我想工具带足够聪明,可以进行补偿。最新的工具带可在此处找到:

我还建议在rake任务中使用
exec…
,而不是
put…
,因为您可以实时查看进度

Running database migrations ...
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/dependency.rb:52:in `initialize': Valid types are [:development, :runtime], not nil (ArgumentError)
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:371:in `new'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:371:in `search'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:361:in `gems_size'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `start'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `map'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `start'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:128:in `resolve'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:127:in `catch'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/resolver.rb:127:in `resolve'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/definition.rb:182:in `resolve'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/definition.rb:113:in `specs'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/definition.rb:162:in `specs_for'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/definition.rb:151:in `requested_specs'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/environment.rb:23:in `requested_specs'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/runtime.rb:11:in `setup'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler.rb:116:in `setup'
    from /Users/Will/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.2.0/lib/bundler/setup.rb:17