makemigrations
python manage.py makemigrations [app_label]
- 마이그레이션 파일을 만들어 주는 커맨드
- 지금까지의 마이그레이션을 모두 적용했을 때의 모델 상태와 현재 모델 상태를 비교, 변경점을 파일에 기록
예시
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('coplate', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='user',
name='nickname',
field=models.CharField(max_length=15, null=True, unique=True),
),
]
- User 모델에 nickname이라는 필드를 추가
[app_label]
- app_label에 해당하는 앱의 모델에 대해서만 마이그레이션 파일을 만듬
예시
python manage.py makemigrations sample
- sample 앱의 모델 변화를 파악하고 마이그레이션 파일을 만듬
--name
예시
python manage.py makemigrations --name "example"
- 모델에 대한 변경 사항을 000X_example.py 마이그레이션 파일에 저장
migrate
python manage.py migrate [app_label] [migration_name]
- 마이그레이션 파일을 적용
- 기본적으로는 migrate 커맨드는 아직 프로젝트 내에서 적용되지 않은 모든 마이그레이션 파일을 적용
app_label & migration_name
python manage.py migrate sample
- sample 앱 내에서 적용되지 않은 마이그레이션 파일을 적용
python manage.py migrate 000x
- 앱 x번 마이그레이션을 적용
- 만약 앱의 모든 마이그레이션을 취소하고 싶다면 zero를 사용
python manage.py migrate zero
showmigrations
python manage.py showmigrations [app_label]
- 어떤 마이그레이션 파일이 적용된 상태인지 확인
app_label
- app_label에 해당하는 앱만 볼 수 있음