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에서 ID 대신 Slug로 글 접근하기

일반적으로 블로그 글을 불러올 때 /posts/1처럼 id를 사용하는 경우가 많습니다. 하지만 URL에 /posts/lar...

Laravel에서 백그라운드 프로세스를 관리하는 방법

Laravel은 웹 애플리케이션 개발을 위한 강력한 PHP 프레임워크로, 다양한 기능을 통해 개발자들이 더욱 효...

Laravel 블로그에 태그 기능 추가하기

블로그 글에 태그(tag)를 추가하면 글을 주제별로 분류하고 필터링할 수 있어 사용자 경험이 향상됩니다. L...

Laravel에서 마이그레이션을 롤백하는 방법

Laravel은 데이터베이스 스키마 관리를 용이하게 하기 위해 마이그레이션 기능을 제공합니다. 마이그레이션...

Laravel의 로그 파일을 관리하는 방법은 무엇인가요?

Laravel의 로그 파일 관리 방법 Laravel은 웹 애플리케이션의 구조와 기능을 관리하기 위해 강력...

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

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