[Capistrano] Recipe for executing rake tasks

Tadashi Shigeoka ·  Mon, December 17, 2012

Notes on a recipe for executing rake tasks with Capistrano.

namespace :rake do
  desc "Run a task on a remote server."
  # run like: cap staging rake:invoke task=db:seed_fu
  task :invoke do
    run("cd #{deploy_to}/current; rake #{ENV['task']} RAILS_ENV=#{rails_env}")
  end
end

For example, to execute rake db:version via Capistrano:

% cap staging rake:invoke task=db:seed_fu

Changed from rake to rake_task due to namespace collision:

namespace :rake_task do
  desc "Run a task on a remote server."
  # run like: cap staging rake:invoke task=db:seed_fu
  task :invoke do
    run("cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec rake #{ENV['task']}")
  end
end

That’s all.

【Reference】ruby - How do I run a rake task from Capistrano? - Stack Overflow

That’s all from the Gemba.