タイガーラック クリエイティブブログ
2024
September
05

【Laravel】DBテーブルの主キー名を変更する方法

経緯

弊社のシステム作成時にDBテーブルの主キー名を変更することがありました。
主キー名を変更する際の対応方法をご説明させていただきます。

マイグレーションファイルの実装

まず、「php artisan make:migration create_sample_table」のコマンドでマイグレーションファイルを作成し下記のように書き換えます。

・主キーを sample_id にする場合

    public function up()
    {
        Schema::create('sample', function (Blueprint $table) {
            $table->bigIncrements('sample_id'); // デフォルトの'id'から変更
            $table->string('sample_name');
            $table->string('tel', 11);
            $table->string('email')->nullable();
            $table->timestamps();
        });
    }

書き換えた内容で「php artisan migrate」のコマンドを実行するとsample_idを主キーとしたテーブルが作成されます。

Eloquentモデルファイルの実装

次は「php artisan make:model Sample」でモデルファイルを作成し下記の内容を追記します。
これで保存などできるようになります。

protected $primaryKey = 'sample_id';


まとめ

今回の主キー名の変更ですがミーティングで相談した結果、主キー名を変更した方が管理しやすいということで変更しました。特に変更がなければそのままidカラムで作成していたと思います。

システムやDBに携わる担当者の考え方によってこの辺りの認識は変わってくると思うので、色々と勉強になりました。

もし、主キー名を変更する場合は上記対応をしないとエラーが出てしまうので変更する場合はご参考にしていただければ幸いです。

このカテゴリの最新記事

関連記事

SHOP LIST

タイガーラック株式会社

〒577-0056
大阪府東大阪市長堂1-3-14 TOKUYASU Bld.