kuboon
9/9/2014 - 5:12 AM

put in lib/capistrano/tasks

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