운영 데이터를 보존하며 구조를 단계적으로 변경합니다.
마이그레이션은 버전 관리된 순서로 스키마를 바꾸는 코드입니다. 큰 테이블에 NOT NULL 열을 한 번에 추가하기보다 nullable 추가, 배치 backfill, 새 코드 배포, 제약 강화처럼 호환 단계를 나눕니다.
확장 후 축소(expand-contract) 전략은 구버전과 신버전 애플리케이션이 배포 중 함께 동작할 시간을 제공합니다.
DDL도 잠금과 테이블 재작성 비용이 있으므로 제품 버전과 실제 데이터 규모에서 리허설합니다.
ALTER TABLE 지원 범위가 SQLite가 가장 좁습니다 — 컬럼 삭제나 타입 변경을 직접 지원하지 않아 테이블을 새로 만들고 데이터를 옮기는 방식을 써야 할 때가 많습니다.
롤백 SQL만 믿지 말고 데이터 변환이 되돌릴 수 있는지와 백업 복구 시간을 확인하세요.
직접 바꿔보세요기존 users에 nickname 열을 추가하고 단계적으로 값을 채우세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.