How do I run a rake task from Capistrano?

capistrano, rake, ruby

Solution

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.

Problem

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.

Original source