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に携わる担当者の考え方によってこの辺りの認識は変わってくると思うので、色々と勉強になりました。
もし、主キー名を変更する場合は上記対応をしないとエラーが出てしまうので変更する場合はご参考にしていただければ幸いです。
このカテゴリの最新記事
2023.04.07
実務でよく使うVSCodeのショートカット7選
2023.07.25
【ZOHO CRM API】アクセストークンを発行する方法
2024.04.03
【Laravel】パスワードリセット メールアドレス入力欄のバリデーションに独自ルールを追加する
2023.09.27
Laravel Mix(webpack)からViteに移行してみる