stamper
CLIDBMigrationRollback

무중단 DB migration과 rollback을 설계하는 CLI 프롬프트

개발자김철수2시간 전조회 3추천 0
변수 입력5
변수를 채운 뒤 완성본을 복사하세요

언제 사용하나

운영 트래픽을 유지하면서 테이블·컬럼·index를 변경해야 할 때, application 배포와 DB migration의 순서를 안전하게 나누는 데 사용한다.

준비할 정보

  • {{DB_ENGINE_VERSION}}: DB 종류와 버전
  • {{CURRENT_SCHEMA}}: 관련 schema·index·constraint
  • {{CHANGE}}: 원하는 최종 변경
  • {{TRAFFIC_AND_SIZE}}: 트래픽 패턴, 테이블 크기, 증가율
  • {{DEPLOYMENT_MODEL}}: 배포 방식과 여러 버전의 동시 실행 여부

복사해서 쓰는 CLI agent 프롬프트

{{DB_ENGINE_VERSION}}에서 {{CHANGE}}를 무중단으로 적용할 migration 계획을 설계해줘.
현재 schema: {{CURRENT_SCHEMA}}
트래픽·데이터 크기: {{TRAFFIC_AND_SIZE}}
배포 방식: {{DEPLOYMENT_MODEL}}

1. 저장소의 migration tool, transaction 정책, backup·복구 절차를 먼저 확인해.
2. 현재 application과 새 application이 동시에 동작하는 expand/migrate/contract 단계로 나눠.
3. 각 SQL의 lock 범위, 예상 실행 시간, full table rewrite, disk 사용량, replication 영향을 검토해.
4. backfill은 batch 크기, 재개 지점, 속도 제한, 행 수 검증을 포함해.
5. dev·staging에서 production과 유사한 데이터 크기로 검증하는 명령을 제시해.
6. rollback 가능 시점과 roll-forward만 가능한 시점을 구분해.
7. SQL은 작성하되 어떤 DB에도 실행하지 마. 대상 환경 확인, backup, 명시적 승인 후에만 실행해.

결과: '위험 분석 / expand / application 전환 / backfill / 검증 / contract / rollback·roll-forward / 모니터링'

필수 검증

  • migration 전 대상 DB·schema·row count·backup 복구 가능성을 확인한다.
  • migration 후 null·중복·FK·row count·application health를 검증한다.
  • contract 단계는 이전 버전 application이 더 이상 실행되지 않음을 확인한 후에만 수행한다.

중단 조건

실제 DB 종류·버전·크기가 없거나 backup 복구가 검증되지 않았을 때, lock 영향을 확인할 수 없을 때, 운영 write 승인이 없을 때는 실행하지 않는다.

관련 자료

댓글 0

아직 댓글이 없습니다.