장고 모델의 pk id 필드를 uuid 필드로 바꾸는 작업은 좀 손이 갑니다

import uuid
from django.db import models

class MyModel(models.Model):
    uuid = models.UUIDField(default=uuid.uuid4, unique=True)

1. uuid 필드를 위와 같이 추가하고 makemigrations로 마이그레이션을 만듭니다

class MyModel(models.Model):
    uuid = models.UUIDField(default=uuid.uuid4, primary_key=True)

2. unique=True를 지우고 primary_key=True로 바꿉니다.

그 다음 makemigrations로 마이그레이션을 만듭니다

마이그레이션 파일을 보면 id 필드를 지우고 uuid 필드를 추가하면서 pk로 만들게 됩니다

class MyModel(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True)

(option) 3. uuid -> id로 rename 하고 makemigrations 명령어를 실행합니다

이렇게 하면 3개의 마이그레이션 파일이 나올건데 한 마이그레이션으로 합쳐도 상관 없습니다

 

주의

ForeignKey로 사용되고 있다면 상당히 복잡합니다

자세한건 [3]을 참고해주세요

 

Reference

반응형