Udemyセール!最大95%オフ!1,200円~Udemy公式サイト >

この記事にはプロモーションが含まれています。

【Laravel】カラム名を変更する方法【マイグレーション】

【Laravel】カラム名を変更する方法【マイグレーション】

この記事では

Laravelでデータベーステーブルのカラム名を変更する方法

を解説します。

検証はLaravel11で実施しました。

Laravelではマイグレーションファイルを作成・編集し、コマンドでテーブルを作成します。

その際、テーブルのカラム名を間違えて入力してしまうということも起こりえます。

また、仕様変更によってカラム名の変更が必要となる可能性も考えられるでしょう。

ケケンタ

今回ご紹介する方法を用いることで簡単にカラム名を変更できるので、ぜひご活用ください!




ケケンタ

ケケンタのITブログでは、WebアプリPHPLaravel)やWeb制作WordPressコーディング)について情報を発信しています。
学習中の方や実務をされている方など多くの方にアクセスいただいていますので、ぜひほかの記事も参考にしてみてください!


運動不足、気になっていませんか?

もしプログラミング学習やお仕事で運動不足が気になっているなら

連続屈伸運動がおすすめです!

ボタンにカーソルを合わせるだけ
カウントダウンが始まるタイマーをご用意してみました!

ケケンタ

無理のない範囲で、ぜひ隙間時間に屈伸運動を取り入れてみて下さい!

タイマースタート

3:00

※運動不足だと連続3分で取り組んでもかなり息が切れます
(僕は加えて気分もちょっと悪くなりました……)
絶対にご無理の無い範囲でお取り組みください!



目次

【解説】Laravelでデータベースのカラム名を変更する方法

STEP1 マイグレーションファイルを作成する

まずは以下のコマンドでマイグレーションファイルを作成しましょう。

 php artisan make:migration change_column_name_comments_table

「change_column_name_comments_table」の部分の名前は任意です。(分かりやすい名前を推奨)

STEP2 マイグレーションファイルを編集する

続いて、作成されたマイグレーションファイルを編集していきます。

今回はnicesテーブルの外部キーを「comment_id」とするべきところ、誤って「post_id」にしてしまった状況を想定しています。

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * マイグレーション実行時に動く処理
     */
    public function up(): void
    {
        Schema::table('nices', function (Blueprint $table) {
            $table->renameColumn('post_id', 'comment_id')->change();
        });
    }

    /**
     * ロールバック実行時に動く処理
     */
    public function down(): void
    {
        Schema::table('nices', function (Blueprint $table) {
            $table->renameColumn('comment_id', 'post_id')->change();
        });
    }
};

主な編集個所はup()関数とdown()関数の2つです。

Laravelにはchange()関数が用意されており、以下のように記述することでカラム名を変更することが可能です。

$table->renameColumn('post_id', 'comment_id')->change();

また、down()関数にも以下の処理を記述しています。

down()関数

$table->renameColumn('comment_id', 'post_id')->change();

down()関数はロールバック実行時に動く関数です。

ここに記述するのは、簡単に言えばup()関数で実行させる処理と逆の処理です。
※今回は「post_id」を「comment_id」へ修正しているため、down()関数の方には、その反対の処理を記述しています。

down()はマイグレーション実行時には動きませんが、ロールバックするときに正しく処理が書かれていないとエラーが発生するためご注意ください。

STEP3 マイグレーションを実行する

マイグレーションファイルが編集できたら以下のコマンドでマイグレーションを実行しましょう。

php artisan migrate

STEP4 カラム名が変更されていることを確認する

最後に、本当にカラム名が変更されたかどうかを確認してみましょう。

この記事ではSQLite3での確認方法をご紹介します。

STEP
SQLite3をCLIで起動する

Laravelプロジェクトディレクトリの直下で以下のコマンドを実行することでSQLite3をCLIで起動することができます。

sqlite3 .\database\database.sqlite
SQLite3のCLI起動後
SQLite3のCLI起動後
STEP
テーブル構造を確認する

SQLite3で特定のテーブル構造を確認するときは以下のコマンドを実行します。

PRAGMA table_info('nices');
STEP
SQLite3を終了する

SQLite3のCLIモードを終了するときは以下のコマンドを実行します。

.quit

末尾に「;」を付けるとエラーになるのでご注意ください。

ケケンタ

以上がLaravel11でデータベーステーブルのカラム名を変更する方法です!

まとめ

以上がLaravelでデータベーステーブルのカラム名を変更する方法でした。

人の手でおこなう以上、カラム名の記述ミスが絶対に起こらないとは言い切れません。

また、仕様変更にともなうカラム名の変更も可能性としてはゼロではないでしょう。

ケケンタ

そのようなときに今回ご紹介させていただいた内容をご活用いただければ何よりです。

それでは、最後までご覧いただきありがとうございました!

当ブログではLaravelやPHPなどWebアプリに関する情報を発信しています。

ご興味のある方はほかの記事もご覧いただけるとうれしいです!

【Larave】カラム名を変更する方法【マイグレーション】のアイキャッチ画像

この記事が気に入ったら
フォローしてね!

この記事が良いと思ったらシェアしてね!

コメント

コメントする

CAPTCHA


目次