모델 마이그레이션
마이그레이션은 모델을 변경할 때(필드 추가, 모델 삭제 등) 해당 변경 사항을 데이터베이스 스키마에 전파하는 Django의 방법입니다. 마이그레이션은 대부분 자동화되지만, 언제 마이그레이션을 생성해야 하고, 언제 실행해야 하는지, 그리고 발생할 수 있는 일반적인 문제를 알아야 합니다.
모델을 변경한 후에는 이러한 변경 사항을 데이터베이스 스키마에 전파하기 위해 마이그레이션을 생성해야 합니다. 마이그레이션은 다음과 같은 명령을 사용하여 생성할 수 있습니다.
python manage.py makemigrations
마이그레이션을 데이터베이스에 적용하려면 아래 명령을 사용합니다.
python manage.py migrate
makemigrations와migrate명령어
python manage.py makemigrations와 python manage.py migrate는 Django의 데이터베이스 마이그레이션 기능을 사용하는 명령어입니다. 이들 명령어는 Django 모델의 변경 사항을 추적하고, 데이터베이스 스키마를 업데이트하는 데 사용됩니다.
python manage.py makemigrations : 이 명령어는 Django 애플리케이션의 모델에 대한 마이그레이션 파일을 생성합니다. 마이그레이션 파일은 모델의 변경 사항을 기록한 Python 스크립트입니다. makemigrations 명령어를 실행하면 Django는 애플리케이션의 migrations 디렉토리에 마이그레이션 파일을 생성합니다. 이 파일은 데이터베이스 스키마를 어떻게 변경할지에 대한 정보를 담고 있습니다.
python manage.py migrate : 이 명령어는 마이그레이션 파일을 기반으로 실제 데이터베이스 스키마를 업데이트합니다. migrate 명령어를 실행하면 Django는 마이그레이션 파일을 읽고, 데이터베이스에 대응하는 스키마 변경 작업을 수행합니다. 이 작업은 새로운 테이블 생성, 필드 추가 또는 수정, 인덱스 생성 등과 같은 데이터베이스 스키마의 변화를 반영합니다. Django는 마이그레이션 히스토리를 추적하여 이미 적용된 마이그레이션을 기록하고, 필요한 경우에만 새로운 마이그레이션을 적용합니다.
마이그레이션은 Django의 ORM(Object-Relational Mapping) 기능을 기반으로 작동합니다. Django 모델의 변경 사항은 마이그레이션 파일로 기록되고, 이를 통해 Django는 데이터베이스 스키마를 자동으로 업데이트할 수 있습니다. 마이그레이션은 데이터베이스 스키마의 버전 관리를 가능하게 하며, 개발자는 손쉽게 모델의 변경 사항을 추적하고 적용할 수 있습니다.