Adicione o seguinte às config/deploy.rb
tarefas de rake personalizadas:
namespace :rake do
desc "Invoke rake task"
task :invoke do
run "cd #{deploy_to}/current"
run "bundle exec rake #{ENV['task']} RAILS_ENV=#{rails_env}"
end
end
Uso de amostra:
cap staging deploy:invoke task=db:seed
cap deploy:invoke task=another:rake-task
Tarefas de rake predefinidas:
namespace :rake do
namespace :db do
%w[create migrate reset rollback seed setup].each do |command|
desc "Rake db:#{command}"
task command, roles: :app, except: {no_release: true} do
run "cd #{deploy_to}/current"
run "bundle exec rake db:#{ENV['task']} RAILS_ENV=#{rails_env}"
end
end
end
namespace :assets do
%w[precompile clean].each do |command|
desc "Rake assets:#{command}"
task command, roles: :app, except: {no_release: true} do
run "cd #{deploy_to}/current"
run "bundle exec rake assets:#{ENV['task']} RAILS_ENV=#{rails_env}"
end
end
end
end
Uso de amostra:
cap production rake:db:seed
cap rake:assets:precompile