Laravel에서 시드 데이터베이스와 연결하는 방법

라라벨(Laravel)은 PHP로 작성된 강력한 웹 애플리케이션 프레임워크로, 데이터베이스와의 효율적인 연결 및 관리를 돕는 다양한 기능을 제공합니다.

시드(seed) 데이터베이스는 테스트 데이터를 신속하게 생성하고 관리하는 데 유용한 요소입니다.

이번 글에서는 Laravel에서 시드 데이터베이스와 연결하는 방법에 대해 자세히 알아보겠습니다.

1. 데이터베이스 설정

1.1 .env 파일 수정

시드 데이터베이스를 사용하기 위해 먼저 데이터베이스 설정을 확인해야 합니다.

Laravel 프로젝트의 루트 디렉토리에 위치한 .env 파일을 열고, 아래와 같이 데이터베이스 연결 정보를 입력합니다.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

DB_DATABASE, DB_USERNAME, DB_PASSWORD는 자신의 환경에 맞게 수정합니다.

1.2 데이터베이스 마이그레이션

데이터베이스와 연결한 후에는 필요한 테이블을 생성해야 합니다.

Laravel의 마이그레이션 기능을 사용하여 다음 명령어로 테이블을 생성합니다.

php artisan migrate

위 명령어는 database/migrations 디렉토리에 정의된 모든 마이그레이션 파일을 실행합니다.

2. 시더 생성

시드를 만들기 위해 시더 파일을 생성합니다.

다음 명령어를 입력합니다.

php artisan make:seeder UserSeeder

이 명령어로 database/seeders/UserSeeder.php 파일이 생성됩니다.

2.1 UserSeeder 예시

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class UserSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            ['name' => '홍길동', 'email' => '[email protected]', 'password' => bcrypt('password')],
            ['name' => '김철수', 'email' => '[email protected]', 'password' => bcrypt('password')],
        ]);
    }
}

DB::table() 메서드를 사용하여 users 테이블에 데이터를 삽입합니다.

3. 시더 실행

작성한 시더를 실행하기 위해 다음 명령어를 사용합니다.

php artisan db:seed --class=UserSeeder

3.1 전체 시더 실행

모든 시더를 한 번에 실행하려면 아래 명령어를 사용합니다.

php artisan db:seed

DatabaseSeeder.php 파일에서 사용할 시더 클래스를 등록해야 합니다.

4. 시드 로딩

데이터베이스 초기화 시 자동으로 시드 데이터를 로딩할 수도 있습니다.

4.1 DatabaseSeeder 수정

database/seeders/DatabaseSeeder.php 파일에서 run 메서드에 다음과 같이 추가합니다.

public function run()
{
    $this->call(UserSeeder::class);
    // 다른 시더도 여기에 추가할 수 있습니다.

}

그리고 다음 명령어로 데이터베이스 초기화 및 시드 실행을 동시에 할 수 있습니다.

php artisan migrate:fresh --seed

5. 마무리

Laravel에서 시드 데이터베이스와 연결하는 과정은 비교적 간단합니다.

시더를 통해 테스트 데이터를 손쉽게 삽입할 수 있으며, 구조 변경이나 데이터 재설정이 필요한 경우에도 빠르게 대응할 수 있습니다.

시드 기능을 잘 활용하면 개발과 테스트 환경을 효율적으로 구성할 수 있습니다.

Tags:
Laravel

관련 게시글

Laravel에서 주입된 의존성을 테스트하는 방법

Laravel 프레임워크는 의존성 주입(Dependency Injection)을 통해 유연하고 모듈화된 코드를 작성할 수 있...

Laravel에서 헬퍼 파일을 만드는 방법은 무엇인가요?

Laravel에서 헬퍼 파일 만들기 Laravel은 PHP 프레임워크 중 하나로, MVC 아키텍처를 기반으로 하여 웹...

Laravel에서 커스텀 예외 클래스를 만드는 방법은 무엇인가요?

Laravel에서 커스텀 예외 클래스 만들기 Laravel은 강력한 예외 처리 시스템을 제공하는 프레임워...

Laravel의 기능 테스트와 단위 테스트의 차이

Laravel은 PHP 프레임워크로, 웹 애플리케이션 개발에 필요한 다양한 기능을 제공합니다. 그 중에서도 테스...

Laravel에서 요일마다 실행되는 작업을 스케줄링하는 방법

Laravel은 강력한 스케줄링 기능을 제공하여 개발자가 주기적으로 실행되어야 하는 작업을 쉽게 관리할 수...

Laravel의 보안 기능과 취약점 방지 방법은 무엇인가요?

Laravel의 보안 기능과 취약점 방지 방법 Laravel은 PHP 프레임워크 중 하나로, 웹 애플리케이션...