Files
chatwoot/config/initializers/database_fallback.rb
T

16 lines
378 B
Ruby

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