해결된 질문
작성
·
209
1
강사님 안녕하세요.
좋은 강의에 항상 감사하고 있습니다 :)
'서버에 이미 반영된' 마이그레이션 파일에 대해 squashmigrations 명령을 통해 마이그레이션 파일을 축약해도 장고 서버에는 영향이 없지 않나요?
강의 말미에는 미적용 마이그레이션 파일을 대상으로 squashmigrations 명령을 사용할 것을 언급하신 이유가 궁금합니다.
혹시 반영된 마이그레이션 파일에 대한 squashmigrations 명령이 부작용이 있다면, 무수히 많은 마이그레이션 파일이 이미 생성되었고 서버에 모두 반영된 상태라면 이 사태를 정리할 수 있는 방법이 있을까요?ㅎㅎ
강사님의 답변 기다리고 있겠습니다.
감사합니다.
답변 1
1
안녕하세요.
미적용 마이그레이션 파일에 대해서 squashmigrations에 대해서 언급한 것은
하나의 기능을 구현함에 있어서 개발단계에서 다수의 마이그레이션 파일이 생성될 수 있습니다. 이때 다수의 마이그레이션 파일을 그대로 커밋하기보다, 하나의 기능에 대해서는 하나의 마이그레이션 파일로 커밋하는 것이 보다 관리하기 편리하기 때문에 언급을 한 것입니다.
다수의 마이그레이션 파일을 하나의 마이그레이션 파일로 만들기 위해, squashmigrations을 사용할 수도 있겠고, 미적용 마이그레이션 파일들을 삭제하고 다시 makemigrations 을 수행해서 새로이 생성해볼 수도 있을 것입니다.
반영된 마이그레이션에 대해서 squashmigrations하는 것은 별 이슈없이 잘 수행됩니다. 다만 0001 부터 0010 까지를 하나로 합칠 경우, 행여나 중간단계. 예를 들어 0005단계로 rollback을 할 수는 없을 것입니다. 혹은 현 장고 프로젝트가 바라보는 모든 데이터베이스는 0010까지가 필히 적용이 되어있어야겠죠.
그래서 저는 이미 적용된 마이그레이션에 대해서는 굳이 squashmigrations을 하지는 않습니다.
명쾌한 답변 감사합니다!
필요에 따라 migration file 중간에서 롤백을 할 수 있기 때문에 squashmigrations 명령으로 파일을 정리하기 보다는 기능별로 파일을 정리하는 것이 좋다는 말씀이시군요!
이미 적용된 migration file에 대해 squashmigrations을 권장하지 않으시는 부분도 명확하게 이해했습니다!
감사합니다~