【Ruby on Rails】schema_migrationsテーブルについて解説します

Ruby on Rails

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。

この記事では、 Ruby on Railsschema_migrationsテーブルについて丁寧に解説します。

前提条件:実行環境について

実行環境は以下の通りです。

OS Windows10
Rubyのバージョン 2.6.6
Ruby on Railsのバージョン 6.0.3.6
SQLiteのバージョン 3.32.3

この記事ではRuby on Railsのプロジェクトは

C:\rails_study\sample

に作成しています。

schema_migrationsテーブルとは

schema_migrationsテーブルとは、マイグレーションが実行されたかを管理するためのテーブルです。

マイグレーションを実行するコマンドの

が実行されたあらゆるRailsのデータベースには、このテーブルが存在します。
実行コマンドについては、こちらの記事をご参考ください。

schema_migrationsテーブルは【version】というカラムのみのテーブルです。
入る値は、マイグレーションファイルのバージョン(タイムスタンプ)です。
Ruby on Railsのschema_migrationsテーブルを解説

上記の画像の「20210413151302」という値は、マイグレーションファイル名のタイムスタンプに紐づいています。
マイグレーションファイル名は、「タイムスタンプ_クラス名.rb」という名前で作成されます。
ファイル名の最初のタイムスタンプがschema_migrationsテーブルに保存されます。
マイグレーションファイルを新規作成するコマンドについては、こちらの記事をご参考ください。

migrateディレクトリ配下を確認すると
Ruby on Railsのschema_migrationsテーブルを解説

  • 20210413151302_create_users.rb
  • 20220413022739_add_column_user.rb

というマイグレーションファイルがあります。

schema_migrationsテーブルに「20210413151302」という値があるということは、「20210413151302_create_users.rb」は実行しているが「20220413022739_add_column_user.rb」は未実行である、という意味になります。

マイグレーション実行コマンド

を実行したとき、schema_migrationsテーブルを参照します。
【version】に格納されている値以降のマイグレーションを順々に実行していきます。
実行が成功すると、実行したすべてのマイグレーションファイルのタイムスタンプがschema_migrationsテーブルにどんどん保存されていきます。

まとめ:schema_migrationsテーブルを確認みよう!

以上がRuby on Railsのschema_migrationsテーブルについての解説でした!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました