Django에서 마이그레이션 파일을 만들때 --empty 옵션으로 빈 마이그레이션 파일을 생성할 수 있다.
python manage.py makemigrations --empty <app_name>
생성된 마이그레이션 파일에 초기 데이터를 넣는 로직을 작성하면 된다.
추가로, 마이그레이션을 되돌릴때 로직도 넣을 수 있다. 필수는 아니지만 작성하지 않으면 마이그레이션을 되돌릴때 에러가 발생한다. 그러므로 빠른 개발을 위해 넣어주는 것이 좋다.
# Generated by Django 5.0.6 on 2024-07-23 06:47
from django.db import migrations
from event.models import EventType
def create_default_events(apps, schema_editor):
db = schema_editor.connection.alias
event = apps.get_model(app_label='event', model_name='Event')
event.objects.using(db).create(
title="test1",
subtitle="test subtitle",
type=EventType.CONCERT
)
event.objects.using(db).create(
title="test2",
subtitle="test subtitle",
type=EventType.SPORTS
)
event.objects.using(db).create(
title="test3",
subtitle="test subtitle",
type=EventType.ETC
)
def reverse_default_events(apps, schema_editor):
db = schema_editor.connection.alias
event = apps.get_model(app_label='event', model_name='Event')
event.objects.using(db).filter(subtitle="test subtitle").delete()
class Migration(migrations.Migration):
dependencies = [
("event", "0002_ticket_regular_price_ticket_sale_price"),
]
operations = [
migrations.RunPython(code=create_default_events, reverse_code=reverse_default_events)
]
'Django,Python' 카테고리의 다른 글
[Django] 개발 서버는 멀티 스레드? (2) | 2024.07.09 |
---|---|
[Django] shell_plus로 개발 생산성 높이기 (0) | 2024.07.07 |
[Django] Django에서는 HTTP 요청을 어떻게 처리할까? (0) | 2024.06.21 |
[Django] 동시성 고려하기(2) - optimistic lock 적용하기 (0) | 2024.06.10 |
[Django] 동시성 고려하기(1) - F 객체 사용하기 (0) | 2024.05.12 |