Change root Chewy strategy to emit a warning instead of erroring out in production mode (#24327)

local
Claire 1 year ago committed by GitHub
parent 4909c2e718
commit 5c499f54e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      config/application.rb
  2. 1
      config/initializers/chewy.rb
  3. 12
      lib/chewy/strategy/bypass_with_warning.rb

@ -39,6 +39,7 @@ require_relative '../lib/public_file_server_middleware'
require_relative '../lib/devise/two_factor_ldap_authenticatable'
require_relative '../lib/devise/two_factor_pam_authenticatable'
require_relative '../lib/chewy/strategy/mastodon'
require_relative '../lib/chewy/strategy/bypass_with_warning'
require_relative '../lib/webpacker/manifest_extensions'
require_relative '../lib/webpacker/helper_extensions'
require_relative '../lib/rails/engine_extensions'

@ -19,6 +19,7 @@ Chewy.settings = {
# cycle, which takes care of checking if Elasticsearch is enabled
# or not. However, mind that for the Rails console, the :urgent
# strategy is set automatically with no way to override it.
Chewy.root_strategy = :bypass_with_warning if Rails.env.production?
Chewy.request_strategy = :mastodon
Chewy.use_after_commit_callbacks = false

@ -0,0 +1,12 @@
# frozen_string_literal: true
module Chewy
class Strategy
class BypassWithWarning < Base
def update(...)
Rails.logger.warn 'Chewy update without a root strategy' unless @warning_issued
@warning_issued = true
end
end
end
end
Loading…
Cancel
Save