diff options
Diffstat (limited to 'config/initializers/database_query_analyzers.rb')
-rw-r--r-- | config/initializers/database_query_analyzers.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/config/initializers/database_query_analyzers.rb b/config/initializers/database_query_analyzers.rb new file mode 100644 index 00000000000..8a2fe1d8388 --- /dev/null +++ b/config/initializers/database_query_analyzers.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# Currently we register validator only for `dev` or `test` environment +if Gitlab.dev_or_test_env? || Gitlab::Utils.to_boolean(ENV['GITLAB_ENABLE_QUERY_ANALYZERS'], default: false) + Gitlab::Database::QueryAnalyzer.instance.hook! + Gitlab::Database::QueryAnalyzer.instance.all_analyzers.append(::Gitlab::Database::QueryAnalyzers::GitlabSchemasMetrics) + + if Rails.env.test? || Gitlab::Utils.to_boolean(ENV['ENABLE_CROSS_DATABASE_MODIFICATION_DETECTION'], default: false) + Gitlab::Database::QueryAnalyzer.instance.all_analyzers.append(::Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification) + end + + Gitlab::Application.configure do |config| + config.middleware.use(Gitlab::Middleware::QueryAnalyzer) + end +end |