MENU

【Laravel】カラムを追加する方法

Laravelで既存テーブルにカラムを追加したい場合は、マイグレーションを使うのが基本です。

直接DBを触るのではなく、マイグレーションで管理することで、

  • チーム開発でも安全
  • 本番環境との整合性が保てる
  • 変更履歴が残る

といったメリットがあります。

今回は「usersテーブルにプロフィール情報を追加する」という例で解説します。

目次

カラムを追加する流れ

Laravelでカラムを追加する流れは以下の4ステップです。

  1. マイグレーション作成
  2. ファイル編集(up / down)
  3. migrate実行
  4. tinkerで確認

❶ マイグレーションでカラムを追加する

まずはマイグレーションファイルを作成するため、以下のコマンドを実行します。

php artisan make:migration add_profile_columns_to_users_table --table=users

コマンドのポイント

  • add_profile_columns_to_users_table
    • 「usersテーブルにcolumnsを追加する」という意味の命名
  • --table=users
    • 既存テーブルを変更することを明示

実行すると、database/migrations ディレクトリにファイルが生成されます。

❷ マイグレーションファイルを編集

生成されたファイル
database/migrations/xxxx_add_columns_to_users_table.php
を開いて、必要があれば編集します。基本的にはそのままでOKです。
xxxxには、コマンドを実行したときの日時(2026_03_03_041133のような形)が入ります。

例:カラム追加コード

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('profile_name')->nullable()->comment('表示名');
        $table->text('bio')->nullable()->comment('自己紹介');
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn([
            'profile_name',
            'bio',
        ]);
    });
}

各処理の解説

up() メソッド

up() メソッドは、マイグレーション実行時に動く処理です。
ここに「追加するカラム」を記述します。

  • string() → 文字列型(VARCHAR)
  • text() → 長文テキスト
  • nullable() → NULLを許可
  • comment() → カラムの説明

down() メソッド

down() メソッドは、マイグレーションを元に戻すための処理を書く場所です。

Laravelでは、以下のコマンドでロールバック(取り消し)ができます。

php artisan migrate:rollback

このとき実行されるのが down() です。

なぜ down() が重要なのか?

例えば、

  • 本番環境で不具合が発生した
  • カラム設計を間違えた
  • テスト用に一度戻したい

このような場合、down() が正しく書かれていないと 安全に元に戻せません。

つまり、

up() が「変更」
down() が「取り消し」

この2つは 必ずセットで考える必要があります。

❸ マイグレーション実行

編集が終わったら、マイグレーションを実行します。
このとき、up()メソッドが実行されます。

php artisan migrate

エラーが出なければ、DBへのカラム追加は完了です。

❹ 確認(tinker)

正しく追加されたか確認するには tinker を使うと便利です。

php artisan tinker
App\Models\User::all();

ここで追加したカラムが取得できればOKです。

よくあるエラー

SQLSTATE エラーが出る場合

  • 既に同名カラムが存在していないか
  • マイグレーションファイルを編集し忘れていないか
  • --table を付け忘れて新規テーブル扱いになっていないか

を確認しましょう。

まとめ

Laravelでカラムを追加する流れは以下の4ステップです。

  1. マイグレーション作成
  2. ファイル編集(up / down)
  3. migrate実行
  4. tinkerで確認

直接DBを触らず、必ずマイグレーションで管理するのがベストプラクティスです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Muta Blog運営者はデザインも開発もやるWebエンジニアです。
本ブログでは現場で培ったWebの知識やノウハウを発信しています。
Web制作歴5年/現在ReactやRubyを中心に幅広く学習中/

目次