Rails7からDBレイヤーを剥がす

RailsからDBレイヤーを剥がす手法について記載します

環境

Rails 7.0.3

bin/setupファイルを修正

bin/setupファイルのdb:prepare部分を削除します

  # 以下2行を削除かコメント化
  puts "\n== Preparing database =="
  system! "bin/rails db:prepare"

config/enviroments/development.rbを修正

  # Raise an error on page load if there are pending migrations.
  # 以下1行を削除かコメント化
  config.active_record.migration_error = :page_load

  # Highlight code that triggered database queries in logs.
  # 以下1行を削除かコメント化
  config.active_record.verbose_query_logs = true

config/database.ymlを削除

config/database.ymlファイルを削除します

dbフォルダを削除

dbフォルダを削除します

modelsフォルダを削除

modelsフォルダを削除します

application.rbを修正

require "rails/all"

を以下に修正

require "action_controller/railtie"
require "action_view/railtie"

他に必要なrailsの機能があるなら、以下を参照しながらrequireする

github.com

rails/allを分解してrequireしたら以下のようなエラーが立ち上げ時に出るので 一つずつファイル内検索して対応する

 `method_missing': undefined method `action_mailer'

基本は設定のところばかりが引っかかるのでコメント化対応でOK

gemファイルからDB関連のライブラリを削除

MysqlやらsqliteなどのDB関連のライブラリを削除して 再度bundle installします

rails sしてエラーなく立ち上がったらOK

以上となります