NOT NULL 컬럼 단계적 추가 + 락 문제 경험 + 정합 검증 쿼리 + 롤백 시나리오 준비
팀 프로젝트에서 운영 중인 테이블에 컬럼을 추가하는 마이그레이션을 처음 진행했습니다. 가장 어려웠던 건 기존 데이터가 있는 상태에서 NOT NULL 컬럼을 추가할 때 기본값 처리를 어떻게 할지였습니다. 처음엔 ALTER TABLE을 그냥 실행했다가 락이 걸려서 다른 쿼리가 막히는 문제를 경험했습니다. 이후에는 컬럼을 먼저 NULL 허용으로 추가하고, 기존 데이터를 배치로 채운 뒤 NOT NULL로 바꾸는 단계적 방식을 배웠습니다. 정합 검증에서는 마이그레이션 전후에 행 수와 집계값이 동일한지 확인하는 쿼리를 미리 준비해뒀습니다. 롤백 시나리오도 미리 짜두는 게 중요한데, 되돌릴 수 있는 방법을 먼저 설계하고 진행 여부를 결정하는 습관이 생겼습니다.
DB 마이그레이션은 코드 변경보다 순서가 더 중요한 자리라는 걸 그때 배웠습니다.