Railsマイグレーション入門|rails g migration から db:migrate までを初心者向けに完全解説
生徒
「Railsでテーブルを作るとき、マイグレーションって必ず出てきますよね…正直よく分かっていません」
先生
「マイグレーションは、データベースの設計図を書く作業です。順番に進めれば難しくありません」
生徒
「rails g migration とか db:migrate とか、呪文みたいで不安です…」
先生
「大丈夫です。紙に設計図を書いて、工事を始める流れと同じですよ」
1. マイグレーションとは?初心者向けに一言で説明
マイグレーションとは、Railsでデータベースの形を管理する仕組みです。 テーブルを作る、カラムを追加する、型を変更する、といった作業を 履歴として残しながら進められます。
例えるなら、ノートに書いた設計図を 日付順にファイルしていくイメージです。 どの順番で何を変更したかが、後からでも分かります。
2. rails g migration とは何をしているのか
rails g migration は、 マイグレーションファイルを作成するコマンドです。 まだデータベースは変わりません。
この時点では、 「設計図の白紙を用意した」 だけの状態です。
rails g migration CreateUsers
このコマンドを実行すると、 db/migrate フォルダに 日時付きのファイルが1つ作られます。 この日時が、実行順番を決める大切な情報になります。
3. マイグレーションファイルの中身を見てみよう
作成されたマイグレーションファイルには、 change メソッドが書かれています。 ここに「どう変更するか」を書きます。
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :name
t.timestamps
end
end
end
create_table は「テーブルを作る」という意味です。 t.string は文字列のカラムを表します。 timestamps は created_at と updated_at を自動で作ります。
4. マイグレーションはまだ実行されていない点に注意
初心者がよく勘違いするのが、 「ファイルを書いたらテーブルができた」と思うことです。 まだデータベースには何も起きていません。
設計図を書いただけで、 まだ工事は始まっていない状態です。 次のステップがとても重要になります。
5. db:migrate とは?設計図を現実に反映する作業
rails db:migrate は、 書いたマイグレーションを 実際のデータベースに反映するコマンドです。
rails db:migrate
このコマンドを実行すると、 マイグレーションが順番に実行され、 テーブルやカラムが作られます。
工事で言えば、 設計図をもとに建物を建て始める瞬間です。
6. schema.rbとは?結果をまとめた設計書
db:migrate が成功すると、 schema.rb というファイルが更新されます。 これは「今のデータベースの完成形」をまとめたものです。
マイグレーションが履歴、 schema.rb が最新版の完成図、 という関係だと考えると分かりやすいです。
7. 初心者がつまずきやすいポイント
マイグレーションでよくある失敗は、 db:migrate を忘れること、 変更後に再実行しないことです。
「ファイルを書いたら必ず migrate」 この流れを習慣にすると、 マイグレーションは怖くなくなります。
8. マイグレーションはRails開発の土台
マイグレーションは、 モデルやバリデーションの前にある、 とても重要な基礎作業です。
rails g migration で設計図を作り、 中身を書き、 db:migrate で反映する。 この基本手順を理解できれば、 Railsのデータベース操作は一気に見通しが良くなります。