
makemigrations & migrate 명령어django의 makemigrations와 migrate 명령어는 데이터베이스 스키마 관리와 관련된 중요한 도구이다.
이 두 명령어를 사용해서 애플리케이션의 모델 변경사항을 데이터베이스에 적용하는 과정이 진행된다.
makemigrations사용 목적:
모델에 대한 변경사항을 감지하여 이를 마이그레이션 파일로 생성한다. 이 마이그레이션 파일은 모델의 변경사항을 데이터베이스 스키마 코드로 표현한 것이며, makemigrations 명령어를 통해 db와 연동시킬 python 파일로 만들어주는 작업을 한다.
실행 방법:
$ python manage.py makemigrations
# 특정 앱을 대상으로 하는 경우
$ python manage.py makemigrations {app_name}
결과:
migrations 디렉토리 하위에 새로운 마이그레이션 파일이 생성된다. 이 파일은 나중에 migrate 명령어를 통해 실행될 수 있으며, 해당 파일은 직접적으로 변경하거나 지우지 않는 것이 권장된다.
migratemakemigrations 명령어로 생성된 마이그레이션 파일들을 실제 데이터베이스에 적용하여 모델의 변경사항을 데이터베이스 스키마에 반영한다.# 모든 준비가 된 마이그레이션 파일을 데이터베이스에 적용한다.
$ python manage.py migrate간단히 정리!
makemigrations는 DB와 장고를 연결시켜주는 연결고리라고 생각하면 됨- 그런데 파일이 만들어진다고 해서 자동적으로 연동이 되는 것이 아니라, 이를 연동시켜줄 명령어를 입력해야 하는데 그게 바로
migrate인 것
makemigrations: 연결고리migrate: 연동
from django.db import models
# Create your models here.
class HelloWorld(models.Model):
text = models.CharField(max_length=255, null=False)
$ python manage.py makemigrations
$ python manage.py migrate
migrations 디렉토리 하위에 0001_initial.py 파일 생성됨settings.py 에서 어떤 DB로 연동했는지 정보 확인 가능 (추후 DB 변경 예정)DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}