쓰기 중 복사 분기에서 파괴적인 Postgres 마이그레이션 테스트
언제 쓸까: 마이그레이션(DROP COLUMN, 대규모 업데이트, 인덱스 재구축)이 있고 프로덕션 위험 없이 프로덕션 형태의 데이터에서 이를 실행하려고 합니다.
사전 조건
- 네온 API 키 — console.neon.tech → 계정 → API 키
흐름
-
메인에서 브랜치 생성Neon 프로젝트 <id>의 메인 브랜치에서 'test-drop-legacy'라는 브랜치를 생성합니다. 새 분기에 대한 연결 문자열을 반환합니다.✓ 복사됨→ 2초 이내에 분기가 생성되고 conn 문자열이 반환됨
-
브랜치에 마이그레이션 적용새 분기에 연결하고 <paste migration SQL>을 실행합니다. 행 수 및 오류를 보고합니다.✓ 복사됨→ 마이그레이션이 완료되었습니다. 카운트가 의미가 있다
-
확인 후 정리변경된 테이블에 대해 온전성 쿼리를 실행합니다. 결과가 정확해 보이면 알려주시면 메인에 지원하겠습니다. 그런 다음 어느 쪽이든 지점을 삭제하십시오.✓ 복사됨→ 스토리지 비용을 피하기 위해 검증 + 분기 삭제
결과: 프로덕션 위험 없이 마이그레이션이 실제 데이터에서 작동한다는 확신을 가지세요.
함정
- Branch는 쓰기량에 비례하여 스토리지를 소비합니다. — 테스트 후 즉시 브랜치를 삭제합니다. 쓰기가 많은 버려진 브랜치로 인해 비용이 많이 듭니다.
- Branch is a snapshot — doesn't see writes that happen on main after branch creation — Branch close to apply time; or use Neon time-travel to branch from a specific timestamp