feat: handle if read_replica is not available
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user