[Python]Django에서 makemigrations와 migrate의 차이

박현희·2020년 10월 8일
0

Django 홈페이지

Django Migrate

차이

공식 문서

  • makemigrations: models.py에서 적용한 변경사항이나 추가된 혹은 삭제된 사항들을 감지하여 파일로 생성
  • migrate: 적용되지 않은 migrations들을(설정값들을) 적용시키는 역할

migrations

models.py에서 바꾼 내용을(예를 들면 field를 추가하거나, model을 삭제하는 것 등) 데이터베이스 스키마에 전파시키는 장고의 방법이다.

공식 문서에서는 migrations를 데이터베이스 스키마의 버전 컨트롤 시스템으로 생각하라고 말한다. (You should think of migrations as a version control system for your database schema.) 내 모델에 적용된 변화를 모아서 각 migrations files에 적용시켜주는 것이기 때문이다. git commit과 유사하다.

python 문법으로 쓰인 models.py를 SQL문으로 바꾸고 database에 적용시킬 준비를 하는 작업이라고 이해했다.

migrate

내 데이터베이스에 변화된 내용을 실제 테이블에 적용해주는 것이다. 각 app 안에 있는 migrations file은 해당 app 안의 migrations 디렉토리 안에 존재하고, commited 되어 코드로서 분배되도록 디자인 되어있다.

0개의 댓글