Last active
December 17, 2023 03:04
-
-
Save muscardinus/8884801 to your computer and use it in GitHub Desktop.
sunspot tasks for Capistrano 3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace :deploy do | |
before :updated, :setup_solr_data_dir do | |
on roles(:app) do | |
unless test "[ -d #{shared_path}/solr/data ]" | |
execute :mkdir, "-p #{shared_path}/solr/data" | |
end | |
end | |
end | |
end | |
namespace :solr do | |
%w[start stop].each do |command| | |
desc "#{command} solr" | |
task command do | |
on roles(:app) do | |
solr_pid = "#{shared_path}/pids/sunspot-solr.pid" | |
if command == "start" or (test "[ -f #{solr_pid} ]" and test "kill -0 $( cat #{solr_pid} )") | |
within current_path do | |
with rails_env: fetch(:rails_env, 'production') do | |
execute :bundle, 'exec', 'sunspot-solr', command, "--port=8983 --data-directory=#{shared_path}/solr/data --pid-dir=#{shared_path}/pids" | |
end | |
end | |
end | |
end | |
end | |
end | |
desc "restart solr" | |
task :restart do | |
invoke 'solr:stop' | |
invoke 'solr:start' | |
end | |
after 'deploy:finished', 'solr:restart' | |
desc "reindex the whole solr database" | |
task :reindex do | |
invoke 'solr:stop' | |
on roles(:app) do | |
execute :rm, "-rf #{shared_path}/solr/data" | |
end | |
invoke 'solr:start' | |
on roles(:app) do | |
within current_path do | |
with rails_env: fetch(:rails_env, 'production') do | |
info "Reindexing Solr database" | |
execute :bundle, 'exec', :rake, 'sunspot:solr:reindex[,,true]' | |
end | |
end | |
end | |
end | |
end | |
Thanks a lot! =D
Thanks, but this solution does not work for me.
This gist have the deprecated part as --data-directory
has been replaced with --solr-home
.
execute :bundle, 'exec', 'sunspot-solr', command, "--port=8983 --data-directory=#{shared_path}/solr/data --pid-dir=#{shared_path}/pids"
I had replaced it with below as.
execute :bundle, 'exec', 'sunspot-solr', command, "--port=8983 --solr-home=#{shared_path}/solr --pid-dir=#{shared_path}/pids"
But it also not works for me. I have below version for Sunspot, etc.
sunspot_solr 2.2.7
sunspot 2.2.7
sunspot_rails 2.2.7
For Capistrano 3, I have made an updated version: https://gist.github.com/lalitlogical/4c8c047b95fe45da6ae19d1b59411783
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi! I get an error.
Do you know why?
note: when I ssh to the server. I can exec
RAILS_ENV=production rake sunspot:solr:reindex
was success.