put in lib/capistrano/tasks
namespace :solr do
def args
fetch(:sunspot_args, "")
end
def sunspot_roles
fetch(:sunspot_server_role, :app)
end
desc "start solr"
task :start do
on roles(sunspot_roles) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :bundle, :exec, :rake, "sunspot:solr:start"
end
end
end
end
desc "stop solr"
task :stop do
on roles(sunspot_roles) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :bundle, :exec, :rake, "sunspot:solr:stop"
end
end
end
end
desc "reindex the whole database"
task :reindex do
invoke 'solr:stop'
execute "rm -rf #{shared_path}/solr/data/*"
invoke 'solr:start'
execute :bundle, :exec, :rake, "sunspot:reindex"
end
desc "restart solr"
task :restart do
invoke 'solr:stop'
invoke 'solr:start'
end
end