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

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

Avatar for imadoki imadoki
October 30, 2023

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

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

Avatar for imadoki

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