カテゴリ: Rails 更新日: 2026/01/12

Railsマイグレーション入門|rails g migration から db:migrate までを初心者向けに完全解説

マイグレーション入門:rails g migration から db:migrate まで基本手順
マイグレーション入門:rails g migration から db:migrate まで基本手順

先生と生徒の会話形式で理解しよう

生徒

「Railsでテーブルを作るとき、マイグレーションって必ず出てきますよね…正直よく分かっていません」

先生

「マイグレーションは、データベースの設計図を書く作業です。順番に進めれば難しくありません」

生徒

「rails g migration とか db:migrate とか、呪文みたいで不安です…」

先生

「大丈夫です。紙に設計図を書いて、工事を始める流れと同じですよ」

1. マイグレーションとは?初心者向けに一言で説明

1. マイグレーションとは?初心者向けに一言で説明
1. マイグレーションとは?初心者向けに一言で説明

マイグレーションとは、Railsでデータベースの形を管理する仕組みです。 テーブルを作る、カラムを追加する、型を変更する、といった作業を 履歴として残しながら進められます。

例えるなら、ノートに書いた設計図を 日付順にファイルしていくイメージです。 どの順番で何を変更したかが、後からでも分かります。

2. rails g migration とは何をしているのか

2. rails g migration とは何をしているのか
2. rails g migration とは何をしているのか

rails g migration は、 マイグレーションファイルを作成するコマンドです。 まだデータベースは変わりません。

この時点では、 「設計図の白紙を用意した」 だけの状態です。


rails g migration CreateUsers

このコマンドを実行すると、 db/migrate フォルダに 日時付きのファイルが1つ作られます。 この日時が、実行順番を決める大切な情報になります。

3. マイグレーションファイルの中身を見てみよう

3. マイグレーションファイルの中身を見てみよう
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. マイグレーションはまだ実行されていない点に注意

4. マイグレーションはまだ実行されていない点に注意
4. マイグレーションはまだ実行されていない点に注意

初心者がよく勘違いするのが、 「ファイルを書いたらテーブルができた」と思うことです。 まだデータベースには何も起きていません。

設計図を書いただけで、 まだ工事は始まっていない状態です。 次のステップがとても重要になります。

5. db:migrate とは?設計図を現実に反映する作業

5. db:migrate とは?設計図を現実に反映する作業
5. db:migrate とは?設計図を現実に反映する作業

rails db:migrate は、 書いたマイグレーションを 実際のデータベースに反映するコマンドです。


rails db:migrate

このコマンドを実行すると、 マイグレーションが順番に実行され、 テーブルやカラムが作られます。

工事で言えば、 設計図をもとに建物を建て始める瞬間です。

6. schema.rbとは?結果をまとめた設計書

6. schema.rbとは?結果をまとめた設計書
6. schema.rbとは?結果をまとめた設計書

db:migrate が成功すると、 schema.rb というファイルが更新されます。 これは「今のデータベースの完成形」をまとめたものです。

マイグレーションが履歴、 schema.rb が最新版の完成図、 という関係だと考えると分かりやすいです。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

マイグレーションでよくある失敗は、 db:migrate を忘れること、 変更後に再実行しないことです。

「ファイルを書いたら必ず migrate」 この流れを習慣にすると、 マイグレーションは怖くなくなります。

8. マイグレーションはRails開発の土台

8. マイグレーションはRails開発の土台
8. マイグレーションはRails開発の土台

マイグレーションは、 モデルやバリデーションの前にある、 とても重要な基礎作業です。

rails g migration で設計図を作り、 中身を書き、 db:migrate で反映する。 この基本手順を理解できれば、 Railsのデータベース操作は一気に見通しが良くなります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Ruby
“すべてはオブジェクト”を体感!初心者向けRubyのオブジェクト指向入門【irbで学ぶ】
New2
Ruby
Rubyの標準入出力を完全ガイド!puts・print・pの違いとデバッグ活用法
New3
Ruby
Gemとは?RubyGemsとBundlerを初心者向けに完全解説!依存関係管理も図解でわかりやすく理解
New4
Ruby
Rubyの文字エンコーディング入門!UTF-8・マジックコメント・外部/内部エンコーディングを完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.7
Java&Spring記事人気No7
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説