about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-04-03 15:05:39 +0200
committerGitHub <noreply@github.com>2023-04-03 15:05:39 +0200
commit5c499f54e3ecc2fab6de2ff76441a11ddf3c503d (patch)
treec3d846d681a43130d38701204d3d273bf4e2a391
parent4909c2e7183f38caedd4445928033dc208762609 (diff)
Change root Chewy strategy to emit a warning instead of erroring out in production mode (#24327)
-rw-r--r--config/application.rb1
-rw-r--r--config/initializers/chewy.rb1
-rw-r--r--lib/chewy/strategy/bypass_with_warning.rb12
3 files changed, 14 insertions, 0 deletions
diff --git a/config/application.rb b/config/application.rb
index 43631c551..f0e65f443 100644
--- a/config/application.rb
+++ b/config/application.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'
diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
index 2a91efefc..daf4a5f32 100644
--- a/config/initializers/chewy.rb
+++ b/config/initializers/chewy.rb
@@ -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
 
diff --git a/lib/chewy/strategy/bypass_with_warning.rb b/lib/chewy/strategy/bypass_with_warning.rb
new file mode 100644
index 000000000..eb6fbaab1
--- /dev/null
+++ b/lib/chewy/strategy/bypass_with_warning.rb
@@ -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