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.