Seederとは

会社のインターンで「Seeder」に遭遇した。

Seederとは何かまとめた。

Seederに遭遇した状況

会社のインターンに参加して初日に開発環境構築をしてた。

会社ではLaravelを使っている。

会社の仕様書があって、それ通りにパソコンの環境を揃えていた。

Docker内に環境を作っていたが、本番環境と同様のDBをmigrateで生成した。

https://sunablog.tokyo/2021/08/11/post-2091/
Migrationについては、この投稿を参考

そのあとに「Seederを実行するように」と言われた。

ここで初対面した。

Seederでできること

Seederを使うとDBにダミーデータを挿入することができる。

下からの説明を見れば分かる。

Seederに実行方法

以下のようにコマンドを実行するとUserTableSeeder.phpというファイルが生成される。

php artisan make:seeder UserTableSeeder

このファイル内のrunメソッドにDBのtableに挿入したい実際のデータを記述する。

例えば以下のようになる。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class UserTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'suna',
            'email' => 'suna_sample@email.com',
            'sex' => 'male'
        ]);
    }
}

これのみだとSeederファイルを設定しただけなので、これを実際に作動させれるようにDatabaseSeeder.phpファイルで先ほどのUserTableSeeder.phpが呼び出されるように処理を書く。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends DatabaseSeeder
{
    public function run()
    {
        $this->call('UserTableSeeder::class');
    }
}

これでプログラムは完了。

次のコマンドを実行することで、実際にSeederが作動してDBにデータが挿入される。

php artisan db:seed --class=UserTableSeeder

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です