D1 마이그레이션 워크플로
Cloudflare D1 + Drizzle 마이그레이션을 생성·검수·적용하고 막힌 마이그레이션까지 복구하는 실전 가이드 스킬.
개발·코딩중급★ 981⑂ 101AI 점수 8/10마지막 업데이트: 2026. 7. 2.
무엇을 해주나
pnpm db:generate로 생성된 마이그레이션 SQL을 적용 전에 검수하도록 유도합니다. 특히 Drizzle이 default 값 변경 시 만들어내는 "테이블 재생성(CREATE new → INSERT SELECT → DROP → RENAME)" 패턴을 위험 신호로 잡아내고, 단순ALTER TABLE ADD COLUMN으로 고치는 방법을 제시합니다.- 로컬과 원격 양쪽에 모두 적용(
--local/--remote)하고PRAGMA table_info로 검증하는 절차를 정해줍니다. - 부분 적용으로 막힌 마이그레이션을 진단(
d1_migrations조회)하고 수동 기록으로 복구하는 절차를 안내합니다. - D1 파라미터 한도(약 100~150개)로 인한 대량 INSERT 실패를 배치 처리로 회피하는 코드 패턴을 제공합니다.
- Drizzle camelCase vs 원시 SQL snake_case 컬럼 명명 규칙, 신규 프로젝트에서 Worker 배포 → D1 생성 → binding → 재배포 순서를 정리해줍니다.
이런 분께 추천
- Cloudflare Workers + D1 + Drizzle ORM으로 서비스를 운영하는 백엔드/풀스택 개발자
- 마이그레이션이 "로컬은 되는데 프로덕션은 깨지는" 문제를 반복 겪는 팀
- wrangler CLI 명령을 매번 검색해서 쓰는 분
활용 예시
- 스키마에 컬럼을 추가한 뒤 "마이그레이션 생성하고 적용해줘"라고 요청 → Claude가 생성된 SQL을 먼저 읽고 테이블 재생성 패턴이 있으면 안전한 ALTER 문으로 수정한 후 로컬·원격에 적용.
db:migrate가 "duplicate column" 에러로 실패할 때 →PRAGMA table_info와d1_migrations조회로 부분 적용을 확인하고, 해당 마이그레이션을 수동 기록해 이후 마이그레이션을 정상 진행.- 시드 데이터 500행 삽입이 조용히 실패할 때 → 10행 단위 배치 루프로 리팩터링.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/jezweb/claude-skills/HEAD/plugins/cloudflare/skills/d1-migration/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 jezweb/claude-skills 의 plugins/cloudflare/skills/d1-migration 폴더를 내 ~/.claude/skills/d1-migration/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/jezweb/claude-skills.git && mkdir -p ~/.claude/skills && cp -r claude-skills/plugins/cloudflare/skills/d1-migration ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
unused
GitHub에서 원본 보기 ↗라이선스: MIT