migration

Andromeda_Galaxy·2024년 6월 26일

Django

목록 보기
12/12

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에 해당하는 앱만 볼 수 있음
profile
안녕하세요.

0개의 댓글