FEATURE: Introduce pg_force_readonly_mode GlobalSetting (#19612)

This allows the entire cluster to be forced into pg readonly mode. Equivalent to running `Discourse.enable_pg_force_readonly_mode` on the console.
This commit is contained in:
David Taylor
2023-01-19 13:59:11 +00:00
committed by GitHub
parent 998c47cf82
commit 5406e24acb
4 changed files with 15 additions and 2 deletions

View File

@@ -69,7 +69,11 @@ if defined?(RailsFailover::ActiveRecord)
end
RailsFailover::ActiveRecord.register_force_reading_role_callback do
Discourse.redis.exists?(Discourse::PG_READONLY_MODE_KEY, Discourse::PG_FORCE_READONLY_MODE_KEY)
GlobalSetting.pg_force_readonly_mode ||
Discourse.redis.exists?(
Discourse::PG_READONLY_MODE_KEY,
Discourse::PG_FORCE_READONLY_MODE_KEY,
)
rescue => e
if !e.is_a?(Redis::CannotConnectError)
Rails.logger.warn "#{e.class} #{e.message}: #{e.backtrace.join("\n")}"