一键导入
db-migration-review
마이그레이션 파일의 위험 패턴 탐지 (락, 대규모 ALTER, 데이터 손실)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
마이그레이션 파일의 위험 패턴 탐지 (락, 대규모 ALTER, 데이터 손실)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
API 인증/인가(Authorization) 설계를 리뷰하고, 권한 체크 누락·스코프 설계 미흡·권한 상승 리스크를 탐지한다. 접근 통제의 안전성을 검증한다.
API 이용자를 위한 SDK 릴리스 노트 및 마이그레이션 가이드를 생성한다. 변경 사항을 클라이언트 관점에서 정리하고, 구체적인 전환 절차를 제공한다.
요구사항으로부터 RESTful API 엔드포인트를 설계한다. 네이밍 규칙, 리소스 단위, 에러 처리, 응답 구조를 일관되게 정의한다.
API 에러 코드 체계와 에러 응답 계약(Contract)을 설계한다. 일관된 에러 핸들링 규칙을 정의한다.
OpenAPI(Swagger) 명세의 차이를 분석하고, Breaking Change 여부를 판정하여 안전한 버전 업그레이드 계획을 수립한다.
API 리스트 엔드포인트의 페이지네이션·필터링·정렬 구현을 분석하고, 통일된 표준 규격을 수립한다.
| name | db-migration-review |
| description | 마이그레이션 파일의 위험 패턴 탐지 (락, 대규모 ALTER, 데이터 손실) |
| argument-hint | 마이그레이션 파일 경로 또는 디렉터리 |
| user-invocable | true |
| disable-model-invocation | true |
| allowed-tools | Read, Grep, Glob |
당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
마이그레이션 파일을 정적 분석하여 운영(프로덕션) 환경에서 문제를 유발할 수 있는 위험 패턴을 탐지한다.
테이블 락, 대규모 ALTER TABLE, 데이터 손실, 무결성 훼손 등의 리스크를 사전에 식별하고, 안전한 대체 방안을 제시한다.
1-1. 지정된 경로에서 마이그레이션 파일을 식별한다
1-2. SQL 구문 또는 ORM 마이그레이션 정의를 분석한다
1-3. 각 마이그레이션의 작업 유형(DDL / DML)을 분류한다
1-4. 실행 순서 간 의존 관계를 확인한다
다음 패턴을 빠짐없이 점검한다:
2-1. ALTER TABLE로 인해 배타 락(Exclusive Lock)이 발생하는 구간 식별
2-2. LOCK TABLES / LOCK TABLE의 명시적 사용 탐지
2-3. 장시간 트랜잭션 내부에서 DDL 실행 여부 탐지
2-4. 인덱스 생성 시 ALGORITHM=COPY에 해당하는 작업 탐지
2-5. DROP TABLE / DROP COLUMN으로 인한 데이터 삭제 탐지
2-6. TRUNCATE TABLE로 인한 전체 데이터 삭제 탐지
2-7. 데이터 타입 축소 변경 (예: VARCHAR(255) → VARCHAR(100)) 탐지
2-8. NOT NULL 제약 추가 시 기존 NULL 데이터 손실 가능성 탐지
2-9. DELETE FROM을 통한 조건부 데이터 삭제 탐지
2-10. 대규모 테이블에서 ADD COLUMN + DEFAULT 동시 지정 탐지
2-11. 복합 인덱스 컬럼 순서가 비효율적인 경우 탐지
2-12. 불필요한 FORCE INDEX / USE INDEX 사용 탐지
2-13. 외래 키 제약 없이 관계 컬럼을 추가하는 경우 탐지
2-14. CASCADE DELETE의 연쇄 삭제 영향 탐지
2-15. 롤백 SQL 누락 여부 탐지
2-16. 트랜잭션 경계(BEGIN/COMMIT) 누락 또는 불완전 구성 탐지
3-1. 각 탐지 항목에 심각도 부여 (CRITICAL / HIGH / MEDIUM / LOW)
3-2. 영향을 받는 테이블의 예상 규모 평가
3-3. 서비스 중단(다운타임) 발생 가능성 판단
3-4. 데이터 손실의 복구 가능성 평가
4-1. 각 위험 패턴에 대해 안전한 대안 제시
4-2. 온라인 DDL (pt-online-schema-change / gh-ost 등) 적용 가능성 평가
4-3. 단계적 마이그레이션(여러 단계로 분할) 방안 제안
4-4. Blue-Green 배포 전략과의 연계 방안 제시
5-1. DOWN 마이그레이션 존재 여부 확인
5-2. 롤백 SQL이 실제 데이터 복원이 가능한지 검증
5-3. 롤백 불가능한 작업 명시
5-4. 부분 롤백 절차 필요 여부 판단
6-1. 전체 마이그레이션의 안전성 종합 평가 (APPROVE / CONDITIONAL / REJECT)
6-2. CONDITIONAL인 경우, 승인 조건을 구체적으로 명시
6-3. 운영 반영 전 추가로 필요한 테스트 항목 나열
# 마이그레이션 리뷰: [파일명]
## 종합 판정: [APPROVE / CONDITIONAL / REJECT]
## 탐지 요약
| 심각도 | 건수 | 주요 내용 |
|--------|------|------------|
| CRITICAL | N건 | [요약] |
| HIGH | N건 | [요약] |
| MEDIUM | N건 | [요약] |
| LOW | N건 | [요약] |
## 탐지 상세
### [CRITICAL] [탐지 항목명]
- **위치**: `file:line` - 해당 SQL 구문
- **리스크**: [구체적인 장애 시나리오]
- **영향**: [다운타임 / 데이터 손실 / 성능 저하]
- **대안**: [안전한 구현 방법]
```sql
-- 위험한 패턴
ALTER TABLE large_table ADD COLUMN new_col VARCHAR(255) NOT NULL DEFAULT '';
-- 권장 대안
-- Step 1: NULL 허용으로 컬럼 추가
ALTER TABLE large_table ADD COLUMN new_col VARCHAR(255) NULL;
-- Step 2: 배치 작업으로 기본값 반영
-- Step 3: NOT NULL 제약 추가
file:line - 해당 SQL 구문| 마이그레이션 | 롤백 가능 여부 | 사유 |
|---|---|---|
| [작업명] | 가능 / 불가능 / 조건부 | [설명] |
## 안전 수칙
- **실제 SQL을 실행하지 말 것** — 본 스킬은 정적 분석만 수행한다
- **운영 데이터베이스에 접속하지 말 것**
- **마이그레이션 파일 내용을 직접 수정하지 말 것** — 리뷰 결과 보고만 수행한다
- **CRITICAL 항목이 존재할 경우, 파일 상단에 반드시 경고를 명시할 것**
- **데이터 손실이 포함된 작업은 반드시 백업 절차 명시를 요구할 것**
- **추정이 아닌, 확실히 판정 가능한 항목만 CRITICAL로 분류할 것**
- **ORM 전용 마이그레이션 문법도 정확히 분석할 것** (Rails, Django, Alembic, Knex 등)
---
## 종료 조건
- 모든 마이그레이션 파일이 분석되었을 것
- 위험 패턴 탐지 결과가 심각도와 함께 보고되었을 것
- 각 탐지 항목에 대해 안전한 대안이 제시되었을 것
- 롤백 안전성이 평가되었을 것
- 종합 판정(APPROVE / CONDITIONAL / REJECT)이 명확히 제시되었을 것
- CONDITIONAL일 경우 승인 조건이 구체적으로 작성되었을 것
---
## 이 스킬이 적합하지 않은 경우
- **APPROVE를 최종 승인으로 간주하는 경우**: 본 리뷰는 코드 기반 정적 분석 결과다. 실제 데이터 규모, 트래픽 패턴, 복제 구성 등은 반영되지 않으므로 DBA 검토를 생략하면 안 된다.
- **ORM 런타임 동작에 의존하는 마이그레이션**: 분석은 주로 정적 SQL 기반이다. ORM의 런타임 동작(지연 실행, 훅 등)까지는 완전하게 탐지할 수 없다.