본문으로 건너뛰기
cccskills
무료GitHub에 공개

safe-migrations

Run database migrations safely in production. Zero-downtime strategies, rollback procedures, backward compatibility.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md2.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

The Golden Rule: Backward Compatible First

Never break the running application. Migrations must be compatible with the code running before AND after the migration.

Safe Migration Patterns

Adding a Column (Safe)

-- SAFE: new nullable column, app ignores it until code deploys
ALTER TABLE users ADD COLUMN display_name VARCHAR(255);

-- THEN: deploy code that reads/writes display_name
-- THEN: if needed, backfill values
UPDATE users SET display_name = username WHERE display_name IS NULL;
-- THEN: add NOT NULL constraint (separate migration)
ALTER TABLE users ALTER COLUMN display_name SET NOT NULL;

Renaming a Column (Dangerous → Use This Instead)

-- STEP 1: add new column
ALTER TABLE users ADD COLUMN full_name VARCHAR(255);

-- STEP 2: copy data
UPDATE users SET full_name = first_name || ' ' || last_name;

-- STEP 3: deploy code that reads BOTH columns (backward compat)
-- STEP 4: verify new column has all data
-- STEP 5: drop old columns (in a later migration after old code is gone)
ALTER TABLE users DROP COLUMN first_name;
ALTER TABLE users DROP COLUMN last_name;

Adding an Index (Use CONCURRENTLY)

-- WRONG: locks the table
CREATE INDEX idx_users_email ON users(email);

-- RIGHT: doesn't lock (PostgreSQL)
CREATE INDEX CONCURRENTLY idx_users_email ON users(email);

Dropping a Column (Multi-Step)

-- STEP 1: deploy code that no longer reads/writes the column
-- STEP 2: mark column ignored (shadow drop)
ALTER TABLE users ALTER COLUMN old_col DROP NOT NULL;
-- STEP 3: wait for all app instances to deploy
-- STEP 4: drop the column
ALTER TABLE users DROP COLUMN old_col;

Migration File Structure (Prisma example)

prisma/migrations/
  20240101000000_add_user_display_name/
    migration.sql
  20240102000000_backfill_display_name/
    migration.sql

Rollback Strategy

-- Always write a down migration
-- migration_20240101_up.sql
ALTER TABLE users ADD COLUMN score INTEGER DEFAULT 0;

-- migration_20240101_down.sql
ALTER TABLE users DROP COLUMN score;

Production Checklist

Before running migration in production:

  • Tested on staging with production data volume
  • Estimated execution time (slow on large tables?)
  • Index additions use CONCURRENTLY
  • NOT NULL columns have a DEFAULT value
  • Down migration written and tested
  • Deployment window scheduled (if table lock required)
  • Database backup taken
  • Monitoring in place to detect query slowdowns post-migration

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

anoa

무료

Drive a real browser from the command line — open pages, snapshot the interactive elements as refs, click and fill by ref, read text, run JS, screenshot. Use when a task needs a live browser: checking a page renders, walking a login or checkout flow, scraping something that only exists after JavaScript runs, or reproducing a UI bug.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Run linters/typecheckers to calculate health score.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Comprehensive UI/UX compliance check (A11y, performance, responsive).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Infrastructure-first security audit (OWASP, secrets, dependencies).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

auth

무료

Setup authentication flow (register, login, session/JWT, middleware)

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Deep knowledge about deploying applications to AWS (EC2, ECS, S3, CloudFront, Cloud Run).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

porcupine-md의 스킬 모두 보기

이 스킬의 문제 신고