feat: handle if read_replica is not available

This commit is contained in:
Vishnu Narayanan
2024-05-02 18:59:42 +10:00
parent 3b34be5740
commit 0095254e65
2 changed files with 16 additions and 1 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ class ApplicationRecord < ActiveRecord::Base
include Events::Types
self.abstract_class = true
connects_to database: { writing: :primary, reading: :primary_replica }
# connects_to database: { writing: :primary, reading: :primary_replica }
before_validation :validates_column_content_length
+15
View File
@@ -0,0 +1,15 @@
require 'active_record'
replica_available = ActiveRecord::Base.connection_pool.with_connection do |conn|
conn.execute('SELECT 1 FROM primary_replica LIMIT 1')
true
rescue StandardError
false
end
Rails.application.config.to_prepare do
ApplicationRecord.connects_to database: {
writing: :primary,
reading: replica_available ? :primary_replica : :primary
}
end