How do I run a rake task from Capistrano?

ghz 1years ago ⋅ 9604 views

Question

I already have a deploy.rb that can deploy my app on my production server.

My app contains a custom rake task (a .rake file in the lib/tasks directory).

I'd like to create a cap task that will remotely run that rake task.


Answer

run("cd #{deploy_to}/current && /usr/bin/env rake `<task_name>` RAILS_ENV=production")

Found it with Google -- <http://ananelson.com/said/on/2007/12/30/remote-rake- tasks-with-capistrano/>

The RAILS_ENV=production was a gotcha -- I didn't think of it at first and couldn't figure out why the task wasn't doing anything.