CLIDBMigrationRollback
무중단 DB migration과 rollback을 설계하는 CLI 프롬프트
변수 입력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 승인이 없을 때는 실행하지 않는다.
관련 자료
- PostgreSQL ALTER TABLE: https://www.postgresql.org/docs/current/sql-altertable.html
댓글 0개
아직 댓글이 없습니다.
