#python #sql #django #oracle #django-models
#python #sql #django #Oracle #django-модели
Вопрос:
Мне нужно изменить размер поля идентификатора в базе данных Oracle для поддержки хранения более длинных идентификаторов. По умолчанию использование UUIDField в django создает таблицу с полем varchar размером 32 байта, но теперь она нам нужна для хранения идентификаторов, сгенерированных uuid.uui4, и предоставленных идентификаторов длиной символов до 80. Какой наименее сложный способ сделать это в django, чтобы миграции были согласованы в разных средах при сохранении отношений внешнего ключа в других моделях?
class CurrentModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class desiredModel(models.Model):
id = models.CharField(max_length=80, primary_key=True, default=uuid.uuid4)
Это было внесенное нами изменение, но oracle выдает ошибку при применении миграции django.db.utils.Ошибка базы данных: ORA-01430: добавляемый столбец уже существует в таблице
Ответ №1:
Я не эксперт по Django, но вам, вероятно, потребуется использовать опцию AlterField в Django.