Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions migration-notes/step6-contract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Migration Progress

## 현재 단계: 6단계 - Contract (기존 스키마 제거)

### 수행 작업
- 기존 스키마 컬럼 제거 (DDL)
- 신규 스키마 정리 및 제약조건 강화
- 데이터베이스 스키마 마이그레이션 완료

### DDL 실행

#### 1. 기존 컬럼 제거
```sql
-- first_name, last_name 컬럼 완전 제거
ALTER TABLE users
DROP COLUMN first_name,
DROP COLUMN last_name;
```

#### 2. 신규 스키마 정리
```sql
-- full_name을 NOT NULL로 설정
ALTER TABLE users
MODIFY COLUMN full_name VARCHAR(255) NOT NULL;
```

#### 3. 최종 스키마 확인
```sql
DESCRIBE users;

-- 예상 결과:
-- +------------+--------------+------+-----+---------+----------------+
-- | Field | Type | Null | Key | Default | Extra |
-- +------------+--------------+------+-----+---------+----------------+
-- | id | bigint | NO | PRI | NULL | auto_increment |
-- | email | varchar(255) | NO | | NULL | |
-- | full_name | varchar(255) | NO | | NULL | |
-- | created_at | datetime(6) | YES | | NULL | |
-- | updated_at | datetime(6) | YES | | NULL | |
-- +------------+--------------+------+-----+---------+----------------+
```

### 데이터베이스
- ✅ **기존 스키마 제거**: `first_name`, `last_name` 컬럼 삭제
- ✅ **신규 스키마 완성**: `full_name` 컬럼만 사용 (NOT NULL)
- ✅ **정리된 스키마**: 불필요한 컬럼 없는 깔끔한 구조

### 애플리케이션
- ✅ **코드 정리 완료**: Feature Flag 및 기존 스키마 코드 제거
- ✅ **단일 스키마 사용**: `fullName` 필드만 사용
- ✅ **일관된 API**: 모든 API가 `fullName` 기반

### 최종 아키텍처
- **단순한 스키마**: `users` 테이블에 `full_name` 컬럼만 존재
- **깔끔한 코드**: 이전 스키마나 Feature Flag 관련 코드 없음
- **일관성**: 데이터베이스와 애플리케이션이 동일한 스키마 사용

**DB Migration 프로젝트 완료! 🎉**
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-- Contract 단계: 기존 스키마 제거
-- 설명: 기존 스키마 컬럼들을 제거하고 신규 스키마를 정리한다.

-- 1. 기존 스키마 컬럼 제거
ALTER TABLE users
DROP COLUMN first_name,
DROP COLUMN last_name;

-- 2. 신규 스키마 정리 (NOT NULL 제약조건 추가)
ALTER TABLE users
MODIFY COLUMN full_name VARCHAR(255) NOT NULL;

-- 3. 스키마 확인
-- DESCRIBE users;

-- 4. 데이터 확인
-- SELECT id, full_name, email, created_at, updated_at
-- FROM users
-- LIMIT 5;