はじめに
以下はLaravelと連携しているデータベースにダミーデータを追加するためのSeederを作成する工程のメモになります
Seederファイルを作成するコマンド
以下のコマンドでitemsテーブル用のSeederファイルを作成できます
php artisan make:seeder ItemTableSeeder
Seederファイル名の名称ルール
一般的にテーブル名はスネークケースかつ、複数形に統一されますが
Seederファイルのテーブル名は、キャメルケースかつ、単数系にすることが一般的です
※ファイル名は処理の内容に影響しません
- items または create_items
- Item または CreateItem
作成したSeederファイルの編集
database/seeders フォルダ内にSeederファイルが生成されるので以下のようにテーブルを指定し、カラムに対して値を設定します
自動入力されるカラムについて(補足)
-
id カラム
データ挿入時に値を指定しなくても、自動的にインクリメントされる数値が割り当てられます -
created_at
およびupdated_at カラム
Laravelが自動的に現在の日時を設定します
DatabaseSeederでシーダーを登録する
DatabaseSeederクラス
はデータベースにSeederのデータを登録するための開始点となるクラスです。
クラスのrunメソッド
に作成したSeederクラスを登録しなければ次のコマンドを実行してもシードデータは投入されません
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
// 他の Seeder クラスを登録
$this->call(ItemTableSeeder::class);
}
}
Seederを一括で適用する
DatabaseSeederクラスに登録したSeederを適用してデータベースにデータを挿入するためには、以下のコマンドを実行します
php artisan db:seed
※コマンド実行時にエラーが発生する場合はDBが起動しているか確認して下さい
特定のSeederクラスを実行する場合
特定のSeederクラスだけを実行したい場合は、以下のコマンドを使用します
php artisan db:seed --class=SeederClassName
※SeederClassName ←ここをクラス名に書き換えます