본문 바로가기
Django

[Django 기초] 마이그레이션(Migration)

by dio-han 2021. 12. 6.

마이그레이션(Migration)은 모델(Model)의 변경 사항 즉 Django 프로젝트의 데이터 구조 변경 사항을 관리하기 위한 Django만의

관리 방법이다. 변경될 때 마다 히스토리를 하나씩 만들어 두고 마치 블럭을 갈아 끼우듯 생성한 히스토리를 실제 데이터베이스에

반영하는 것이다. 그리고 이 모든 과정은 Django의 ORM(Object-Relational Mapping)을 통해 진행된다.

 

o makemigrations

python manage.py makemigrations

 

모델의 변경 사항을 인식해서 새로운 마이그레이션을 만든다. 이때 마이그레이션은 각 앱 디렉토리 내 migrations 디렉토리 안쪽에 생성

 

o migrate

python manage.py migrate

 

생성된 최신 버전의 마이그레이션을 데이터베이스에 반영한다. 만약 이전 마이그레이션으로 되돌리고 싶다면 

python manage.py migrate {앱 이름}{되돌릴 마이그레이션 번호} 를 사용할 수 있다.

 

 

o showmigrations

python manage.py showmigrations

 

현재 django 프로젝트의 모든 마이그레이션과 반영 상태를 나타낸다. 만약 특정 앱에 대한 것만 보고 싶다면

python manage.py showmigrations {앱 이름} 을 사용할 수 있다.

 

 

o sqlmigrate

python manage.py sqlmigrate {앱 이름} {마이그레이션}

 

인수로 넘겨준 마이그레이션 ORM을 통해 변경된 SQL문을 출력한다. sqlmigratie 를 통해 모델이 의도한 대로 SQL문으로

변경되어 데이터베이스에 반영되었는지 확인 가능하다.

 

공식문서

https://docs.djangoproject.com/en/2.2/topics/migrations/

 

 

'Django' 카테고리의 다른 글

[Django] Model API  (0) 2021.12.10
[Django 기초] CRUD  (0) 2021.12.06
[Django 기초] Model의 Field  (0) 2021.12.06
[Django 기초] 에러 페이지 처리  (0) 2021.12.05
[Django 기초] Django의 URL 처리  (0) 2021.12.04