데이터베이스 시딩 (Seeder)

 Laravel framework 

라라벨 Seeder 에 대해서

 

 

Seeder를 왜 사용할까?

 

  • 마이그레이션과 함께 사용하면 초기 DB 스키마 생성시 데이터를 쉽게 조작 할 수 있다.
  • 때문에 프로젝트를 처음 구성할 때, 기본적으로 들어갈 데이터들을 만들어 놓을 수 있다.
  • 테스트 더미 데이터들을 넣기 용이하다.

 

Seedeer 작성 및 사용해보기

 

  • Seeder를 생성하기 위해서는 php srtisan 명령어를 실행하면 끝난다.
  • 생성된 모든 seeder들은 your_laravel_project/database/seeds 디렉토리에 위치한다.
//AdmUsersTableSeeder.php seeder 생성
php artisan make:seeder AdmUsersTableSeeder

  • seeder 클래스는 기본적으로 run 하나의 메소드만 가지고 있다.
  • run 메소드는 db:seed artisan 명령어가 실행 될 때 호출된다.
  • run 메소드에 본인이 원하는 어떠한 데이터도 입력 할 수 있다.
  • 직접 query builder 를 사용하거나 모델 팩토리또한 사용 할 수 있다.
  • php artisan 명령어를 사용하여 본인이 만든 seeder의 run메소드를 동작 시킬 수 있다.
<?php

use Illuminate\Database\Seeder;

class AdmUsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('adm_user')->insert([
            'id' => 'admin1@admin.com',
            'name' => '관리자',
            'password' => bcrypt('admin'),
            'remember_token' =>bcrypt('admin'),
        ]);
    }
}

 

// 관리자 데이터를 직접 artisan 명령어를 사용하여 만든다
php artisan db:seed --class=AdmUsersTableSeeder