Laravel에서 데이터베이스 Seeder를 생성하고 사용하는 방법

이 튜토리얼은 널리 사용되는 PHP 프레임워크인 Laravel에서 데이터베이스 시더를 만드는 방법을 보여줍니다. 데이터베이스 시더는 데이터베이스를 테스트 데이터로 채우는 데 도움이 되는 강력한 도구로, 애플리케이션을 더 쉽게 테스트하고 개발 속도를 높일 수 있습니다. Seeder를 만들고 데이터를 추가한 다음 이를 사용하여 데이터베이스를 채우는 과정을 안내합니다. 튜토리얼이 끝나면 자신의 Laravel 프로젝트에서 데이터베이스 시더를 사용하여 개발을 더 빠르고 효율적으로 만드는 지식을 갖게 될 것입니다.

Laravel 10 데이터베이스 시더 튜토리얼 예제

라라벨 프로젝트 설치

결국 laravel에서 데이터베이스 시더의 데모를 보여주기 위해서는 처음부터 새로운 laravel 프로젝트를 설치해야 합니다. 원하는 경우 이 단계를 건너뛸 수 있지만 이미 애플리케이션을 설치한 경우에만 가능합니다.

composer create-project --prefer-dist laravel/laravel laravel-10-seeder

데이터베이스 연결 설정

다운로드/설치된 laravel 앱으로 데이터베이스를 설정합니다. 따라서 다음과 같이 .env 파일을 찾고 데이터베이스 세부 정보를 설정해야 합니다.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database-name
DB_USERNAME=database-user-name
DB_PASSWORD=database-password

라라벨에서 시더 생성

다음 명령을 사용하여 시더를 생성합니다.

php artisan make:seeder UserSeeder

위의 명령을 실행하면  UserSeeder.php seed 폴더에 하나의 파일이 생성됩니다. 시드 클래스는 database/seeders디렉토리에 저장됩니다.

<?php

namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        User::create([
            'name' => 'John doe',
            'email' => 'john@gmail.com',
            'mobile' => '1234567890',
            'password' => Hash::make('john')
        ]);
    }
}

이것은 일반적이지만 기본적인 단계이며 새 시더를 만들 때마다 또는 여러 데이터베이스 시더를 호출할 때마다 따라야 합니다.

/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
    $this->call([
        UserSeeder::class,
    ]);
}

라라벨에서는 기본 클래스 대신 특정 시더 클래스를 구체적으로 시드하는 명령 --class과 함께 옵션을 사용할 수 있습니다 . 이는 특정 데이터 세트만 시드하려는 경우에 유용합니다.db:seedDatabaseSeeder

예를 들어 이름이 시드 클래스인 경우 YourSeederClass다음 명령을 실행하여 해당 클래스만 시드할 수 있습니다.

php artisan db:seed --class=YourSeederClass

또한 migrate:fresh --seed명령을 사용하여 데이터베이스를 시드하기 전에 모든 테이블을 삭제하고 모든 마이그레이션을 다시 실행할 수 있습니다. 이 명령은 새로운 데이터로 데이터베이스를 완전히 재구축하려는 경우에 유용합니다. 그러나 데이터베이스의 기존 데이터를 모두 삭제하므로 주의해서 사용해야 합니다.

모든 시더를 동시에 실행하려면 다음 명령을 실행하십시오.

php artisan db:seed

결론적으로, Laravel의 데이터베이스 시딩 기능은 개발자가 테스트 또는 데모 목적으로 더미 데이터로 애플리케이션의 데이터베이스를 채울 수 있도록 하는 강력한 도구입니다. 라라벨에 내장된 Seeder 클래스와 모델 팩토리를 사용하면 테스트 데이터를 쉽게 생성하고 데이터베이스를 채울 수 있습니다. 또한 고급 데이터 생성 기능을 제공하는 타사 패키지를 사용할 수 있습니다.

1.90 GEEK