Django переносит первичный ключ с UUID на Slug
У меня есть модель AAA с UUID в качестве первичного ключа. Многие модели имеют отношение к этой модели.
Теперь я хочу перевести их на использование Slug в качестве первичного ключа, чтобы сохранить значение slug в базе данных в качестве ссылки.
Каким будет правильный способ сделать это?
Думал, что это может быть многоэтапная миграция. Но имея много таблиц, которые ссылаются на AAA, хотелось бы избежать блокировки всей базы данных на долгое время или каких-либо других проблем в производстве.
from django.db import models
from django_extensions.db.fields import AutoSlugField
from model_utils.models import UUIDModel
# Django models example
class AAA(models.Model):
id = UUIDField(primary_key=True, version=4, editable=False)
title = models.CharField(max_length=255, unique=True)
slug = AutoSlugField(populate_from='title', primary_key=False)
class BBB(models.Model):
aaa = models.ForeignKey(AAA, on_delete=models.CASCADE)
# ... other fields here ...