장고 모델의 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
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] m1 mac에서 homebrew로 conda 설치 및 jupyter 세팅 (0) | 2022.08.04 |
---|---|
[flake8] 4.0.0 이상 버전부터 user-level 설정 불가능, 해결방법 (0) | 2022.06.26 |
[django] 쉘 이용해 앱 초기화하는 방법 (0) | 2021.10.09 |
[Python] Expected type X, got Type[X] instead (0) | 2021.09.10 |
[Django] "You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path." 해결 방법 (0) | 2021.09.02 |