diff --git a/ee/lib/ee/gitlab/database.rb b/ee/lib/ee/gitlab/database.rb index e50ec8bbfa204bb8fcc1463a826d9ca678786932..24037305499ebc3cb2e176fd2da8d07a073ce36f 100644 --- a/ee/lib/ee/gitlab/database.rb +++ b/ee/lib/ee/gitlab/database.rb @@ -10,7 +10,7 @@ module Database override :read_only? def read_only? - ::Gitlab::Geo.secondary? + ::Gitlab::Geo.secondary? || ::Gitlab.maintenance_mode? end def healthy? diff --git a/ee/spec/lib/ee/gitlab/database_spec.rb b/ee/spec/lib/ee/gitlab/database_spec.rb index 7193b1ef8b03360d1f47df710a4ef90b5461e18a..daa2691b2dba98936176a9170bafd8d335281b9a 100644 --- a/ee/spec/lib/ee/gitlab/database_spec.rb +++ b/ee/spec/lib/ee/gitlab/database_spec.rb @@ -34,6 +34,16 @@ expect(described_class.read_only?).to be_falsey end end + + context 'in maintenance mode' do + before do + stub_application_setting(maintenance_mode: true) + end + + it 'returns true' do + expect(described_class.read_only?).to be_truthy + end + end end describe '.healthy?' do