Django에서 DB 스키마 (데이터베이스의 구조, 관계 등을 정의한 것) 를 관리하고 버전 관리를 수행하는 도구.
Django 모델은 애플리케이션의 데이터 구조를 정의하며, 이 모델에 따라 DB 테이블이 생성됨.
마이그레이션은 모델의 변경 사항 (모델의 필드를 추가, 수정, 삭제할 때 등) 을 DB에 반영하기 위해 사용함.
DB 구조와 모델 간의 일관성을 유지할 수 있게 해줌.
makemigrations: Django 프로젝트에서 모델에 대한 변경 사항을 감지하고, 이를 기반으로 새로운 마이그레이션 파일을 생성하는 명령어.migrations 폴더 내에 배치됨.$ python manage.py makemigrations
migrate: 생성된 마이그레이션 파일을 실제로 데이터베이스에 적용하는 명령어.$ python manage.py migrate
makemigrations 로 생성된 마이그레이션 파일들이 순차적으로 실행되어 데이터베이스에 반영됨.$ python manage.py showmigrations
showmigrations: 생성됐던 모든 마이그레이션 파일 목록 확인. 적용된 마이그레이션은 [X]로 표시되며 적용되지 않은 마이그레이션은 [ ]로 표시됨.app_name [X] 0001_initial [X] 0002_auto_20230801_1234 [X] 0003_add_new_field [X] 0004_remove_old_field [X] 0005_update_model_structure [ ] 0006_modify_existing_field [ ] 0007_create_new_table
migrate <마이그레이션 이름>: 해당 마이그레이션으로 마이그레이션을 되돌림.$ python manage.py migrate app_name 0005_update_model_structure