Prisma 프로덕션 가드레일
2. 무중단 마이그레이션3 / 9

Expand→Transition→Contract

위험 변경 분해, static check, staging rehearsal와 배포 창

개념 학습 45 XP 9분

DROP·RENAME·타입 축소·NOT NULL을 앱과 한 번에 배포하면 rollback이 어려워집니다. 새 구조를 추가하는 Expand, backfill·dual write·검증의 Transition, 구 구조를 제거하는 Contract로 나누고 최소 두 앱 버전이 공존하는 호환성 창을 둡니다.

단계변경통과 증거
Expandnullable column·index·new table구/신 앱 모두 동작
Transitionbackfill·dual read/write정합성·완료율·성능
Contract구 read/write·column 제거사용 0·rollback window 종료
Observe30~60분 집중 관찰error·lock·slow query 정상
  1. 위험 SQL 탐지DROP·ALTER TYPE·대규모 UPDATE를 CI에서 표시합니다.
  2. 호환성 설계구·신 앱이 동시에 동작하는 schema contract를 만듭니다.
  3. Rehearsalstaging 데이터 규모와 timing으로 실행·rollback을 연습합니다.
  4. 작은 배포핵심 테이블은 한 번에 하나, 저트래픽 창에 적용합니다.