Laravel migration, seed, factory 차이

2022. 5. 3. 09:53PHP/Laravel8.X

728x90

https://ifelse.info/questions/2586/differences-between-seed-migrations-and-factories
- migrations
마이그레이션은 어플리케이션과 데이터베이스 매니저의 중간에 존재한다. 전통적으로 어플리케이션을 개발할 때는
MySQL Work Bench 같은 툴로 필요한 테이블을 생성하여 데이터베이스를 구축해야 한다.
라라벨은 마이그레이션으로 각각의 데이터테이블을 작성하는 기능을 제공한다.
참고) up(), down()
각각의 마이그레이션은 데이터베이스상 하나의 개체 또는 테이블을 대표한다. 한 번에 하나 이상의 이름을 넣지 않도록 한다.

- seeds
시드는 데이터베이스에 테스트 정보를 덧붙일수 있게 하는 메소드이다. 그러므로 데이터베이스 생성을 전제로 한다. 그러나 마이그레이션을
했는지 안했는지와는 상관 없다. 일단 데이터베이스를 구축한 후 시드 툴을 이용하여 데이터테이블을 채우면 된다.

php artisan make:seeder UsersTableSeeder



시더의 이름은 데이터테이블 이름과 동일하다. 그러나 그 이름은 단수(singular) 형식이어야 한다.
시더는 쿼리 빌더 Fluent와 함께 동작하기 때문에, model을 포함하는 대신 데이터테이블의 이름을 직접 호출한다.

public function run()
    {
        DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
    }



- model Factories
Massively populate our database and help us write tesets for the informatino entered.
시더가 쫌쫌따리 하나하나 레코드를 만든다면
factory는 대량으로 페이크 데이터 호롤로로로로로 만드는 것.

728x90
반응형