2024
November
01
【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に携わる担当者の考え方によってこの辺りの認識は変わってくると思うので、色々と勉強になりました。
もし、主キー名を変更する場合は上記対応をしないとエラーが出てしまうので変更する場合はご参考にしていただければ幸いです。
このカテゴリの最新記事
2024.10.03
【Laravel】主キーが文字列型の場合に値を取得できない問題と解決法
2023.11.16
【Certbot】SSL証明書更新処理の設定変更方法
2024.07.16
【HTML】formaction属性でactionをbuttonやinputによって切り替える方法
2023.04.10
PHPで文字化けを解消する方法(mb_convert_encoding)