MENU

【Laravel8】Seederクラスを利用しDBにマスタデータを投入する

Laravel8講座
目次

はじめに

Laravelでテーブルにデータを投入していく方法を解説していきます。

ここでは作成したテーブルにLaravelコマンドで
マスターデータを投入することを想定しています。

テスト用データ投入についてはこちら

Laravelコマンドでマスタデータを投入するメリット

Laravelコマンドでマスタデータを投入するメリットはなんでしょうか?

各アプリには、
サービスローンチ時に必ず入れておかなければいけない、
マスターデータが必要な場合が多いでしょう。

MysqlなどDBへ直接データを入れる方法もありますが、
Laravel PJ内で管理、データ生成できるようにすれば、
管理、構築、テストが楽になるのでお勧めです。

概要

このテーブルにマスタデータを投入していく方法です。
テーブル作成までのところはこちらのページをご参照ください。

https://karaagelovers.com/create-mysql-table-with-laravel-commands/


前回作ったこちらのスキーマを使います。
テーブル名members

FieldTypeNullKeyDefaultExtra
idbigint unsigned NOPRINULLauto_increment
usernamevarchar(255)NONULL
emailvarchar(255)NONULL
email_verified_attimestampYESNULL
created_attimestampYESNULL
updated_attimestampYESNULL

マスターデータ投入のやり方

データ投入内容設定クラス(Seeder)の作成

このサンプルでは以下2レコードを挿入します。

usernameemailemail_verified_atcreated_atupdated_at
日本太郎nihon.taro@gmail.comデータ挿入日時データ挿入日時データ挿入日時
日本太郎2nihon.taro2@gmail.comデータ挿入日時データ挿入日時データ挿入日時
マスターデータサンプル

データ挿入クラスの作成


まずはデータ挿入クラスの作成をします。

シーダクラスと言ってここでは基本的には、
テーブル作成時に初期で投入しておきたいデータを定義します。

以下コマンドを実行します。
↓コマンドです。

php artisan make:seeder {クラス名}Seeder

例)php artisan make:seeder MemberSeeder

コマンド実行時に以下のファイルが生成されました。
database/seeders/MemberSeeder.php

データの定義を追加

マスターデータの定義を追加していきます。

MemberSeeder.phpはいじらず
同じディレクトリにあるDatabaseSeeder.phpを編集します。

Before(編集前)

コマンド実行時に自動生成されたファイル

After 編集後

解説

6行目
//DBクラス使う宣言
use Illuminate\Support\Facades\DB

18行目から20行目
Memberクラスを呼ぶ宣言


次にファイル名 database/seeders/MemberSeeder.php
の編集をします。

基本的にmembers tablesへの操作はこのクラスに書くと
管理しやすいです。

19行目から32行目
membersテーブルへ挿入する内容の定義
今回は2レコード挿入しています。
書き方は配列の定義に似ていますね。
カッコの位置、数に注意して作業しましょう。
(慌てない慌てない)

データ挿入コマンドの実行

ファイル編集が終わったらデータ挿入のコマンドを実行します。

↓コマンドです

php artisan db:seed

コマンドを実行すると下記のように実行ログが出てきます。
想定通りMemberSeederクラスの処理が行われているようです。

Seeding: Database\Seeders\MemberSeeder
Seeded:  Database\Seeders\MemberSeeder (0.02ms)
Database seeding completed successfully.

コマンド実行は成功しているようなのでDBに入ってテーブルの状況を見ます。


無事データが挿入されていました!!

以上です。
次はFakerクラスを使ってテスト用に自動生成したダミーデータを追加する方法を解説します。

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる