[django]

JinMyung·2021년 12월 6일

makemigrations: models.py에서 적용한 변경사항이나 추가된 혹은 삭제된 사항들을 감지하여 파일로 생성

migrate: 적용되지 않은 migrations들을(설정값들을) 적용시키는 역할

migrations

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

  • DB 스키마를 git처럼 버전으로 나눠서 관리 할 수 있게 해 주는 시스템. 하나의 마이그레이션 파일은 생성된 시점의 모델의 DB스키마 구조를 담고있다

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

  • 스키마(Schema)란? : DB 내에서 데이터가 저장되는 구조와 제약 조건을 정의한 것. 장고로 치면 하나의 어플리케이션의 models.py 파일이라고 할 수 있음

migrate

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

👍 주의

적용된 마이그레이션 파일은 절대로 삭제하시면 안됩니다. 각 마이그레이션은 이전 버전에 대해 의존성을 가지기 때문에 DB 전체가 맛이간다. 마이그레이션 파일을 삭제하려면 반드시 적용을 해제하고 삭제해야함

python manage.py migrate app_name zero 명령어로 마이그레이션을 초기화 시킨 수 삭제

migration 명령어

profile
어디까지 성장할지 한번 탐구해봅시다.

0개의 댓글