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에서 시드 데이터베이스와 연결하는 과정은 비교적 간단합니다.
시더를 통해 테스트 데이터를 손쉽게 삽입할 수 있으며, 구조 변경이나 데이터 재설정이 필요한 경우에도 빠르게 대응할 수 있습니다.
시드 기능을 잘 활용하면 개발과 테스트 환경을 효율적으로 구성할 수 있습니다.