12. DB (1)
DB
animals DB
class AnimalsBase < ApplicationRecord
self.abstract_class = true
connects_to database: { writing: :animals, reading: :animals_replica }
end
primary DB
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
connects_to database: { writing: :primary, reading: :primary_replica }
end
13.
14. DB (2)
transaction connection
# animals
# primary DB Monkey
ApplicationRecord.transaction do
Monkey.create!
raise ActiveRecord::Rollback
end
# animal DB
ApplicationRecord.connection.execute 'INSERT INTO monkeys ...'