PostgreSQL 무중단 스키마 마이그레이션
운영 중인 PostgreSQL에서 락을 최소화하며 스키마를 안전하게 변경하도록 계획·검증·롤백까지 안내하는 스킬.
개발·코딩고급★ 1,838⑂ 107AI 점수 9/10마지막 업데이트: 2026. 9. 16.
무엇을 해주나
ALTER TABLE, 인덱스/제약 추가 등 모든 주요 DDL의 락 레벨을 빠른 작업/블로킹 작업으로 분류한 참조표를 제공합니다.- 컬럼 추가·삭제·이름 변경·타입 변경, NOT NULL·FK·UNIQUE 추가, PK 재정의 등에 대한 무중단 안전 패턴 SQL을 단계별로 제시합니다.
lock_timeout/statement_timeout설정, 재시도 루프(lock_not_available예외 처리),LOCK TABLE ... NOWAIT전략을 비교해 줍니다.- 배치 백필, 마이그레이션 전/후 검증 쿼리, 롤백 가능/불가능 작업 구분, 포크(fork) 기반 리허설 절차를 안내합니다.
- 빈 테이블에서만 테스트하기,
CONCURRENTLY누락, invalid 인덱스 방치 등 9가지 흔한 실수를 짚어 줍니다.
이런 분께 추천
- 수백만 행 규모의 운영 PostgreSQL을 다루는 백엔드 개발자·DBA·플랫폼 엔지니어
- Rails/Django/Prisma 등 마이그레이션 도구가 생성한 SQL이 정말 안전한지 검토받고 싶은 팀
- 배포와 스키마 변경을 조율해 다운타임 없이 릴리스해야 하는 조직
활용 예시
- "
orders테이블에created_at TIMESTAMPTZ DEFAULT now()추가하려는데 안전한가?" → 휘발성 기본값으로 인한 전체 테이블 재작성 위험을 지적하고 nullable 추가 → 배치 백필 → SET DEFAULT/NOT NULL 순서로 다시 작성해 줍니다. - "1천만 행 테이블에
user_id인덱스를 추가해야 해" →CREATE INDEX CONCURRENTLY사용, 트랜잭션 밖 실행, 실패 시pg_index.indisvalid확인 및 정리까지 체크리스트로 안내. - "
amount를 INTEGER에서 NUMERIC으로 바꿔야 해" → 새 컬럼 추가 + 배치 백필 + 컬럼 스왑 패턴과 롤백 계획, 포크에서 먼저 리허설하는 절차를 제시.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/timescale/pg-aiguide/HEAD/skills/postgres-database-migration/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 timescale/pg-aiguide 의 skills/postgres-database-migration 폴더를 내 ~/.claude/skills/postgres-database-migration/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/timescale/pg-aiguide.git && mkdir -p ~/.claude/skills && cp -r pg-aiguide/skills/postgres-database-migration ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 스킬 디렉터리를 만듭니다:
mkdir -p ~/.claude/skills - 저장소를 내려받습니다:
git clone https://github.com/timescale/pg-aiguide.git - 스킬 폴더를 복사합니다:
cp -r pg-aiguide/skills/postgres-database-migration ~/.claude/skills/ references/하위 파일(backfill-strategies.md, validation-queries.md, complete-example.md)이 함께 복사됐는지 확인합니다.- Claude Code를 재시작한 뒤 "운영 테이블에 컬럼 추가하는데 락 걸릴까?"처럼 물어보면 스킬이 자동으로 발동합니다.
- 실제 적용 전에는 반드시 백업 또는 DB 포크에서 먼저 리허설하세요.
GitHub에서 원본 보기 ↗라이선스: Apache-2.0