How do I run a rake task from Capistrano?

前端 未结 16 2150
忘了有多久
忘了有多久 2020-11-28 02:18

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\

16条回答
  •  我在风中等你
    2020-11-28 02:48

    A little bit more explicit, in your \config\deploy.rb, add outside any task or namespace:

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

    Then, from /rails_root/, you can run:

    cap staging rake:invoke task=rebuild_table_abc
    

提交回复
热议问题