Seederとは
会社のインターンで「Seeder」に遭遇した。
Seederとは何かまとめた。
Seederに遭遇した状況
会社のインターンに参加して初日に開発環境構築をしてた。
会社ではLaravelを使っている。
会社の仕様書があって、それ通りにパソコンの環境を揃えていた。
Docker内に環境を作っていたが、本番環境と同様のDBをmigrateで生成した。
そのあとに「Seederを実行するように」と言われた。
ここで初対面した。
Seederでできること
Seederを使うとDBにダミーデータを挿入することができる。
下からの説明を見れば分かる。
Seederに実行方法
以下のようにコマンドを実行するとUserTableSeeder.phpというファイルが生成される。
1 |
php artisan make:seeder UserTableSeeder |
このファイル内のrunメソッドにDBのtableに挿入したい実際のデータを記述する。
例えば以下のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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が呼び出されるように処理を書く。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DatabaseSeeder extends DatabaseSeeder { public function run() { $this->call('UserTableSeeder::class'); } } |
これでプログラムは完了。
次のコマンドを実行することで、実際にSeederが作動してDBにデータが挿入される。
1 |
php artisan db:seed --class=UserTableSeeder |