프로그래밍/Python
[django] primary key 필드 int -> uuid 마이그레이션 방법
vince joe
2021. 10. 10. 01:36
장고 모델의 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
반응형