Rails 5, Capistrano 3, как очистить кеш после развертывания - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу выполнить ограничение, эквивалентное

Rails.cache.clear

после развертывания, но не могу заставить его работать.Вот моя попытка в файле deploy.rb

namespace :deploy do
    after :restart, :clear_cache do
        on release_roles(fetch(:assets_roles)) do
            within release_path do
                with rails_env: fetch(:rails_env) do
                    Rails.cache.clear
                end
            end
        end
    end
end

Но это не работает:

SSHKit::Runner::ExecuteError: Exception while executing as deploy@hostname.com  uninitialized constant Rails

Если не это, то что?

Спасибо за любую помощьКевин

1 Ответ

0 голосов
/ 28 сентября 2018

Я предлагаю вам создать грабли для очистки кеша и вызывать их с помощью ловушек capistrano.Например:

lib / tasks / cache.rb

namespace :cache do
  desc 'clear rails cache'
  task clear: :environment do
    Rails.cache.clear
  end
end

config / deploy.rb

namespace :cache do
  task :clear do
    on roles(:app) do |host|
      with rails_env: fetch(:rails_env) do
        within current_path do
          execute :bundle, :exec, "rake cache:clear"
        end
      end
    end
  end
end

after 'deploy:update', 'cache:clear'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...