Part 16. MySQL 테이블과 Laravel Migration 이해하기
이번 글에서는 MySQL의 테이블 개념과 Laravel Migration을 알아본다. Laravel이 어떻게 테이블을 자동 생성하고 관리하는지 이해한다.
Part 16. MySQL 테이블과 Laravel Migration 이해하기
1. 이번 Part 목표
지난 Part에서는 MySQL 컨테이너에 접속하여 데이터베이스를 확인했다.
하지만 zenoblog 데이터베이스 안에는 아직 아무 테이블도 존재하지 않는다.
이번 Part에서는 테이블이 무엇인지, Laravel Migration이 무엇인지 알아본다.
2. 현재 상태
AD
제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다
SHOW TABLES;
↓
Empty set
데이터베이스는 존재하지만 저장할 테이블은 아직 없다.
3. 테이블(Table)이란?
테이블은 데이터를 저장하는 표라고 생각하면 된다.
예를 들어 회원 정보를 저장한다면 다음과 같은 형태가 된다.
users
id | name | email
1 | zeno | test@test.com
2 | kim | kim@test.com
이 표 자체가 테이블이다.
4. 컬럼(Column)이란?
테이블의 각 항목을 컬럼이라고 부른다.
id
name
email
이것들이 컬럼이다.
5. 로우(Row)란?
실제 데이터 한 줄을 로우라고 부른다.
1 | zeno | test@test.com
이 한 줄이 로우다.
6. 만약 직접 만들면?
순수 MySQL에서는 직접 SQL을 작성해야 한다.
CREATE TABLE users (
id INT,
name VARCHAR(255)
);
프로젝트가 커질수록 관리가 어려워진다.
7. Laravel Migration이란?
Laravel은 Migration이라는 기능을 제공한다.
Migration은 테이블 설계도를 코드로 관리하는 기능이다.
8. Migration 예시
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->timestamps();
});
이 코드만 작성하면 Laravel이 자동으로 SQL을 생성한다.
9. Migration 실행
php artisan migrate
명령어를 실행하면 Laravel이 테이블을 생성한다.
10. zenoBlog에서는?
zenoBlog는 이미 Migration 파일들을 가지고 있다.
실행하면 다음과 같은 테이블들이 생성된다.
users
posts
categories
tags
post_tag
sessions
cache
jobs
11. 왜 좋은가?
개발자 여러 명이 같은 구조를 공유할 수 있다.
Migration 파일
↓
Git 저장
↓
다른 개발자 pull
↓
php artisan migrate
모두 동일한 DB 구조를 갖게 된다.
12. Docker와의 관계
Docker로 MySQL을 실행하더라도 테이블은 자동으로 생기지 않는다.
Laravel Migration을 실행해야 실제 테이블이 생성된다.
13. 실제 흐름
Docker Compose 실행
↓
MySQL 실행
↓
Laravel 실행
↓
php artisan migrate
↓
테이블 생성
14. Part 16 정리
AD
제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다
Database
=
데이터 저장소
Table
=
데이터를 저장하는 표
Column
=
항목
Row
=
실제 데이터
Migration
=
테이블 설계도
php artisan migrate
=
테이블 생성
다음 Part에서는 MySQL에 직접 테이블을 만들고 데이터를 저장해보며 Migration 개념을 체험해본다.
AD
제휴 광고
일부 링크는 제휴 링크이며, 구매 또는 가입 시 일정 수수료를 받을 수 있습니다.
AD









