1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

seederを使ってDBにダミーデータを入れる

Last updated at Posted at 2022-08-09

DBのカラムにダミーデータを入れる

seederを生成するコマンド


php artisan make:seeder ******TableSeeder

****** の部分は事前に作成したLaravelのモデル名になりますが
モデルの命名規則に従う必要があります。

モデルの命名規則

記法 複数or単数
アッパーキャメル 単数 UserData

ダミーを実行するには

seederファイルを編集する


<?php

use Illuminate\Database\Seeder;

//動かすseederのファイル名(拡張子は外す)
class ********** extends Seeder


{

public function run()
    {
        DB::table('テーブル名')->insert([
            [
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列'
            ],
            [
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列'
            ],
            [
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列',
                'カラム名' => '入力する値または文字列'
            ],
          ]);
}
    }

テーブルへデータを挿入(insert)するLaravelのDBファザードを実行します

一つの[ ] の中身に1レコード分のダミーデータを記述します
レコードまたはダミーを増やす場合は ,  (カンマ)で区切ります。

DatabaseSeeder.phpを編集する

database/seeds/DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
    }
}

DatabaseSeeder.phpファイルが見つからない場合は、
新しいファイルを作成しDatabaseSeeder.phpの名前にリネームしてから
上記のコードをコピーして利用してください。

DatabaseSeeder.phpの変更箇所

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(実行するseederファイル名を入力::class);
    }
}

DatabaseSeeder.php のコードを実行するseederファイルの名前に
書き換えなければ処理が実行されません。

エラーの対策と対処方法

カラム(列)のデータ型に注意

シーダーで入力しようとしているカラム(列)
設定されているデータ型が異なる場合には
シーダーの処理にエラーが発生します

カラム(列)は空にするとエラーになる

一つのレコードに存在するカラムは全て埋めなければエラーが発生します
例えば一つのレコードにカラム(列)が10個存在する場合は、
一つのレコードに10個のダミーを用意する必要があります

自動で出力される値のダミーは不要

自動増分されるIDなどのincrements
作成日時を出力するtimestampsなどのデータ型は
自動で値が埋まるためダミーで埋める必要がありません。
上記の例えに言い換えるならば、ダミーを8つ作り、2つは省略します

データ型 種類
integer 数値(整数)
decimal 数値(精度の高い小数)
float 数値(浮動小数)
string 文字(短い文字列)
text 文字(長い文字列)
date 日付
datetime 日時
time 時刻
timestamp タイムスタンプ
binary バイナリ
boolean 真偽

シーダーを実行する

php artisan db:seed

最後にコマンドを実行することで
seederファイルのダミーレコードを
データベースに反映することができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?