인트로
안녕하세요. 오늘은 데이터베이스 마이그레이션에 대해 포스팅하겠습니다.
목차
1. 마이그레이션이란?
2. 데이터베이스 마이그레이션이란?
3. PHP기반 라라벨 프레임워크의 MIGRATION
1. 마이그레이션이란? |
CRUD(Create, Read, Update, Delete)를 잘 수행하려면, 데이터 베이스 테이블 스키마가 잘 정의되어 있어야합니다.
마이그레이션(migration)이란, 한 운영환경으로부터 다른 운영환경으로 옮기는 작업을 뜻합니다. (예, 윈도우 --> 리눅스)
하드웨어, 소프트웨어, 네트워크 등 넓은 범위에서 마이그레이션의 개념이 사용되고 있습니다.
2. 데이터베이스 마이그레이션이란? |
데이터베이스에서 데이터 마이그레이션이란, 데이터 베이스 스키마의 버전을 관리하기 위한 하나의 방법(데이터 전환)입니다.
개발 시스템에는 데이터베이스 스키마가 변경되었지만, 운영시스템의 데이터베이스 스키마가 변경되지 않았을 경우 마이그레이션을 수행합니다. 작게는 프로젝트 상 테이블 생성 및 변경 작업부터, 하나의 애플리케이션 또는 시스템을 옮기는 것까지 마이그레이션입니다. 요구사항에 따라 애플리케이션과 스키마가 바뀌었지만 개발 과정에는 적용됐지만 운영환경에는 적용되지 않아 데이터베이스 전환 시 애를 먹는 경우가 있습니다. 데이터베이스 마이그레이션은 이러한 문제를 해결합니다.
데이터베이스 마이그레이션은 개별 SQL 파일을 MySQL 콘솔 등에서 직접 실행하지 않고
프레임워크의 특정명령어를 통해 실행하고 이 결과를 별도의 테이블에 버전 관리를 하는 기법입니다.
3. PHP기반 라라벨 프레임워크의 MIGRATION |
예를 들어, 라라벨 프레임워크에서 새로운 마이그레이션 생성은 php artisan make:migration create_table --create = tasks 으로 수행합니다.
1) --create 는 마이그레이션시 테이블 생성 여부 결정 옵션
2) --table 는 마이그레이션시 기존 스키마 변경시 관련 테이블 지정시 사용되는 옵션
다음은 라라벨 프레임워크에서 migration 명령어 입력시 생성되는 클래스 CreateTable입니다.
아래 migration 함수에서, up() 은 마이그레이션 적용 수행 메서드(예, 테이블 생성), down() 은 rollback할 경우 수행되는 메서드(예, 테이블 삭제)이다. 만약 마이그레이션 롤백(rollback)시, php artisan rollback 으로 수행한다.
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('table_name', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('table_name');
}
}
?>php
'이론 > DB' 카테고리의 다른 글
[DB] SQL - (2) (0) | 2019.04.19 |
---|---|
[DB] 데이터베이스 스키마/카탈로그 (0) | 2019.03.21 |
[DB] 정보와 데이터베이스, 개체/속성/관계 (3) | 2019.03.08 |
[DB] DB 스키마 (0) | 2019.02.18 |
[DB] 데이터베이스 정의, 등장배경 (0) | 2019.02.18 |