2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

라라벨에서 데이터베이스 마이그레이션을 생성하고 실행하는 방법은?

_____
라라벨에서 데이터베이스 마이그레이션 생성 및 실행 FAQ

Q1: 마이그레이션이란 무엇인가요?
A1: 마이그레이션(Migration)은 데이터베이스 테이블 생성, 수정, 삭제 등의 구조 변경을 코드로 관리할 수 있게 해주는 라라벨의 기능입니다. 이를 통해 버전 관리가 가능하고 팀 협업 시 데이터베이스 변경 내역을 쉽게 공유할 수 있습니다.

Q2: 마이그레이션 파일을 어떻게 생성하나요?
A2: 터미널에서 아래 명령어를 실행하여 마이그레이션 파일을 생성할 수 있습니다.
```
php artisan make:migration create_users_table
```
위 명령어는 `database/migrations` 폴더에 `create_users_table`이라는 이름의 마이그레이션 파일을 생성합니다. 이름은 일반적으로 테이블 이름과 작업 내용을 포함하도록 작성합니다.

Q3: 마이그레이션 파일의 기본 구조는 어떻게 되나요?
A3: 마이그레이션 파일은 `up` 메서드와 `down` 메서드를 포함합니다.
- `up`: 데이터베이스 변경 내용을 작성 (테이블 생성 등)
- `down`: `up`에서 수행한 작업을 되돌리는 내용 작성 (테이블 삭제 등)

예시:
```php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}

public function down()
{
Schema::dropIfExists('users');
}
```

Q4: 마이그레이션을 실행하는 방법은?
A4: 아래 명령어를 터미널에 입력하면 `up` 메서드가 실행되어 데이터베이스가 변경됩니다.
```
php artisan migrate
```

Q5: 마이그레이션을 롤백하려면 어떻게 하나요?
A5: 가장 마지막에 실행한 마이그레이션을 되돌리려면 아래 명령어를 사용합니다.
```
php artisan migrate:rollback
```
모든 마이그레이션을 처음 상태로 되돌리려면:
```
php artisan migrate:reset
```
모든 마이그레이션 롤백 후 다시 실행하려면:
```
php artisan migrate:refresh
```

Q6: 특정 마이그레이션만 생성하고 실행하려면?
A6: 마이그레이션 파일 생성 시 적절한 이름으로 구분 후, `migrate` 명령어는 모든 마이그레이션을 실행합니다. 부분 실행 기능은 없으나, 마이그레이션 파일명을 조정하거나 롤백 후 특정 마이그레이션만 재실행할 수 있습니다.

Q7: 마이그레이션 파일명 앞에 날짜가 붙는 이유는?
A7: 마이그레이션 파일명 앞에 타임스탬프가 붙어 실행 순서를 관리하기 위함입니다. 이로 인해 의존관계가 있는 테이블 생성이 순서대로 진행됩니다.

Q8: 데이터베이스 설정을 변경하려면 어떻게 해야 하나요?
A8: `.env` 파일에서 `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD` 값을 변경하면 됩니다.

Q9: 마이그레이션 생성 시 테이블 이름과 컬럼 지정 방법은?
A9: 마이그레이션 내 `Schema::create` 메서드의 콜백에서 `$table` 인스턴스를 사용해 컬럼을 정의합니다. 다양한 데이터 타입과 인덱스, 제약 조건 등을 설정할 수 있습니다.

---

요약:
1. `php artisan make:migration create_table_name` 으로 마이그레이션 생성
2. `up`과 `down` 메서드에 데이터베이스 변경 로직 작성
3. `php artisan migrate` 로 마이그레이션 실행
4. `php artisan migrate:rollback` 등으로 되돌리기 가능
5. `.env` 파일에서 DB 설정 관리

이 프로세스를 통해 라라벨에서 데이터베이스 스키마를 안전하고 체계적으로 관리할 수 있습니다.
라라벨에서 데이터베이스 마이그레이션을 생성하고 실행하는 방법에 대해 설명하겠습니다. 마이그레이션은 데이터베이스 스키마를 버전 관리할 수 있게 해주는 기능으로, 팀원 간의 데이터베이스 구조를 일관되게 유지하는 데 유용합니다. 1. 마이그레이션 생성하기마이그레이션을 생성하려면 라라벨의 Artisan CLI를 사용합니다. 터미널에서 다음 명령어를 입력합니다:```bashphp artisan make:migration create_users_table```위 명령어는 `create_users_table`이라는 이름의 마이그레이션 파일을 생성합니다. 생성된 파일은 `database/migrations` 디렉토리 안에 위치하게 됩니다. 파일 이름은 타임스탬프와 함께 생성되어, 마이그레이션의 순서를 쉽게 알 수 있습니다. 2. 마이그레이션 파일 수정하기생성된 마이그레이션 파일을 열어보면, `up`과 `down` 메서드가 있습니다. `up` 메서드는 마이그레이션을 실행할 때 데이터베이스에 적용할 변경 사항을 정의하고, `down` 메서드는 이를 롤백할 때 실행됩니다.예를 들어, `users` 테이블을 생성하는 마이그레이션 파일은 다음과 같을 수 있습니다:```phpuse Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;class CreateUsersTable extends Migration{ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); 이중 중괄호 닫기``` 3. 마이그레이션 실행하기마이그레이션 파일을 수정한 후, 다음 명령어를 사용하여 마이그레이션을 실행할 수 있습니다:```bashphp artisan migrate```이 명령어를 실행하면 `up` 메서드가 호출되어 데이터베이스에 변경 사항이 적용됩니다. 4. 마이그레이션 롤백하기마이그레이션을 롤백하려면 다음 명령어를 사용합니다:```bashphp artisan migrate:rollback```이 명령어는 가장 최근에 실행된 마이그레이션의 `down` 메서드를 호출하여 변경 사항을 원래 상태로 되돌립니다. 5. 마이그레이션 상태 확인하<a href='https://sangseek.com/sangseeks/기현/ko'>기현</a>재 데이터베이스에 적용된 마이그레이션의 상태를 확인하려면 다음 명령어를 사용할 수 있습니다:```bashphp artisan migrate:status```이 명령어는 각 마이그레이션의 이름과 실행 여부를 보여줍니다. 6. 마이그레이션 리프레시하기모든 마이그레이션을 롤백하고 다시 실행하려면 다음 명령어를 사용할 수 있습니다:```bashphp artisan migrate:refresh```이 명령어는 모든 마이그레이션을 롤백한 후, 다시 실행하여 데이터베이스를 초기 상태로 되돌립니다. 결론라라벨에서 데이터베이스 마이그레이션을 생성하고 실행하는 과정은 간단합니다. 마이그레이션을 통해 데이터베이스 스키마를 쉽게 관리하고, 팀원 간의 협업을 원활하게 할 수 있습니다. 필요한 경우 마이그레이션 파일을 수정하여 다양한 데이터베이스 구조를 정의할 수 있습니다.
작성자: ㅁㅁ [비회원] | 작성일자: 1년 전 2024-08-26 08:17:04
조회수: 160 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.