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

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

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

Laravel에서 스코프에 따른 쿼리 최적화는 어떻게 하나요?

Laravel에서 스코프에 따른 쿼리 최적화 Laravel은 PHP 기반의 프레임워크로, 데이터베이스와의...

Laravel의 Auth 및 Passport의 차이

Laravel은 PHP 웹 애플리케이션 개발을 위한 프레임워크로, 기본적으로 사용자 인증을 쉽게 처리할 수 있도...

Laravel에서 하루에 한 번만 글 조회수 증가시키기

방문자가 글을 볼 때마다 조회수가 무조건 올라가면 실제 관심도나 방문 수치를 왜곡할 수 있습니다. 같은...

Laravel에서 정책을 통해 권한 부여를 구성하는 방법

Laravel의 정책(policy)은 애플리케이션의 특정 행동에 대한 권한을 제어하는 강력한 도구입니다. 이 정책...