Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Multiple Databasesを用いて2つのRailsプロジェクトを統合する

imadoki
October 30, 2023

Multiple Databasesを用いて2つのRailsプロジェクトを統合する

Kaigi on Rails 2023で発表した際の資料です

imadoki

October 30, 2023
Tweet

More Decks by imadoki

Other Decks in Programming

Transcript

  1. pixivコミック • 2012年開始のマンガサービス • https://comic.pixiv.net • 現在はアプリ版(Android/iOS)、 ブラウザ版の3プラットフォーム • 商業作品の連載

    / 電子書籍ストア / pixivの投稿作品閲覧 • バックエンド・管理画面はRailsで実装 ◦ リリース時はRails3.2 ◦ 現在はRails6.1 4
  2. 18 class Novel::ApplicationRecord < ActiveRecord::Base # … module ClassMethods def

    with_writable(&block) ActiveRecord::Base.connected_to(role: :writing, &block) end # novelのプライマリDBに接続しトランザクションを開始する def transaction_with(&block) ActiveRecord::Base.connected_to(role: :writing) do ActiveRecord::Base.transaction(&block) end end end extend ClassMethods end