DB 마이그레이션은 DB 스키마의 버전을 관리하기 위한 효율적인 방법입니다. 변경된 애플리케이션을 운영에 반영할 때 DB 의 스키마가 개발과 달라서 문제가 된 경험이 있는 독자도 계실겁니다.

 

요구 사항에 따라 애플리케이션과 스키마가 변경되었고 개발/테스트에는 변경된 스키마가 적용되었지만 운영에는 안 되어서 전환시 애를 먹는 경우가 자주 발생합니다.

 

이런 문제는 DB의 스키마를 정의한 SQL 파일은 버전 관리를 할 수 있지만 이 SQL 파일이 DBMS 에 반영되었는지는 버전 관리가 되지 않아서 발생합니다.

DB 마이그레이션은 이런 문제 해결을 위해 개별 SQL 파일을 mysql 콘솔등에서 직접 실행하지 않고 프레임워크의 특정 명령어(라라벨의 경우 artisan migrate) 를 통해 실행하고 이 결과를 별도의 테이블에 저장하여 버전 관리를 하는 기법입니다.