Laravel
[laravel] 데이터베이스 시딩
오병문
2022. 1. 17. 10:46
시딩이란
라라벨은 시더클래스를 통해서 데이터베이스에 더미 데이터를 넣을수 있는 기능을 제공한다.
1. 시더클래스
아티즌 명령어를 통해 시더를 생성한다. 생성된 클래스는 database/seeds에 생성 된다.
php artisan make:seeder UsersTableSeeder
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class UsersTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->insert([
'name' => Str::random(10),
'email' => Str::random(10).'@gmail.com',
'password' => bcrypt('password'),
]);
}
}
이제 시더를 실행하게되면 데이터베이스에 내용이 입력이 될 것이다.
php artisan db:seed --class=UsersTableSeeder
–class 옵션을 붙여주기 귀찮다면 DatabaseSeeder 에 시더를 등록해준다.
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
}
}
php artisan db:seed 실행해보면 데이터가 잘 들어가는 것을 확인할 수 있다.
마이그레이션에 –seed 옵션을 사용하면 편리하다.
php artisan migrate:refresh --seed