diff --git a/.rubocop_todo/database/multiple_databases.yml b/.rubocop_todo/database/multiple_databases.yml index 28dddef7c79b8de84a0aaaba4221f347dfde3655..3e48215fd5c8b2551eb9af1b5326e597d6201ba7 100644 --- a/.rubocop_todo/database/multiple_databases.yml +++ b/.rubocop_todo/database/multiple_databases.yml @@ -11,7 +11,6 @@ Database/MultipleDatabases: - ee/spec/services/ee/merge_requests/update_service_spec.rb - lib/backup/database.rb - lib/backup/manager.rb - - lib/gitlab/current_settings.rb - lib/gitlab/database/load_balancing/load_balancer.rb - lib/gitlab/database/load_balancing.rb - lib/gitlab/database/load_balancing/sticking.rb @@ -29,7 +28,6 @@ Database/MultipleDatabases: - spec/db/schema_spec.rb - spec/initializers/database_config_spec.rb - spec/lib/backup/manager_spec.rb - - spec/lib/gitlab/current_settings_spec.rb - spec/lib/gitlab/database_spec.rb - spec/lib/gitlab/metrics/subscribers/active_record_spec.rb - spec/lib/gitlab/profiler_spec.rb diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb index 2d2d8c412364d39c77c821f1f0ada43eed9a2fe1..0d6767ad56411178bf513aaa6b478f42dbb6cddd 100644 --- a/lib/gitlab/current_settings.rb +++ b/lib/gitlab/current_settings.rb @@ -62,7 +62,7 @@ def uncached_application_settings # need to be added to the application settings. To prevent Rake tasks # and other callers from failing, use any loaded settings and return # defaults for missing columns. - if Gitlab::Runtime.rake? && ActiveRecord::Base.connection.migration_context.needs_migration? + if Gitlab::Runtime.rake? && ::ApplicationSetting.connection.migration_context.needs_migration? db_attributes = current_settings&.attributes || {} fake_application_settings(db_attributes) elsif current_settings.present? @@ -82,7 +82,7 @@ def in_memory_application_settings def connect_to_db? # When the DBMS is not available, an exception (e.g. PG::ConnectionBad) is raised - active_db_connection = ActiveRecord::Base.connection.active? rescue false + active_db_connection = ::ApplicationSetting.connection.active? rescue false active_db_connection && ApplicationSetting.database.cached_table_exists? diff --git a/spec/lib/gitlab/current_settings_spec.rb b/spec/lib/gitlab/current_settings_spec.rb index 46c33d7b7b286cf72b5b7eb8d44496a11fb90f8e..73540a9b0f3822269c7366aba7647fc339649ec9 100644 --- a/spec/lib/gitlab/current_settings_spec.rb +++ b/spec/lib/gitlab/current_settings_spec.rb @@ -118,7 +118,7 @@ allow(Gitlab::Runtime).to receive(:rake?).and_return(true) # For some reason, `allow(described_class).to receive(:connect_to_db?).and_return(false)` causes issues # during the initialization phase of the test suite, so instead let's mock the internals of it - allow(ActiveRecord::Base.connection).to receive(:active?).and_return(false) + allow(ApplicationSetting.connection).to receive(:active?).and_return(false) end context 'and no settings in cache' do @@ -150,8 +150,8 @@ def settings_from_defaults it 'fetches the settings from cache' do # For some reason, `allow(described_class).to receive(:connect_to_db?).and_return(true)` causes issues # during the initialization phase of the test suite, so instead let's mock the internals of it - expect(ActiveRecord::Base.connection).not_to receive(:active?) - expect(ActiveRecord::Base.connection).not_to receive(:cached_table_exists?) + expect(ApplicationSetting.connection).not_to receive(:active?) + expect(ApplicationSetting.connection).not_to receive(:cached_table_exists?) expect_any_instance_of(ActiveRecord::MigrationContext).not_to receive(:needs_migration?) expect(ActiveRecord::QueryRecorder.new { described_class.current_application_settings }.count).to eq(0) end @@ -159,8 +159,8 @@ def settings_from_defaults context 'and no settings in cache' do before do - allow(ActiveRecord::Base.connection).to receive(:active?).and_return(true) - allow(ActiveRecord::Base.connection).to receive(:cached_table_exists?).with('application_settings').and_return(true) + allow(ApplicationSetting.connection).to receive(:active?).and_return(true) + allow(ApplicationSetting.connection).to receive(:cached_table_exists?).with('application_settings').and_return(true) end context 'with RequestStore enabled', :request_store do @@ -181,7 +181,7 @@ def settings_from_defaults context 'when ApplicationSettings does not have a primary key' do before do - allow(ActiveRecord::Base.connection).to receive(:primary_key).with('application_settings').and_return(nil) + allow(ApplicationSetting.connection).to receive(:primary_key).with('application_settings').and_return(nil) end it 'raises an exception if ApplicationSettings does not have a primary key' do