【问题标题】:migrate django model primary key UUID field to CharField将 django 模型主键 UUID 字段迁移到 CharField
【发布时间】:2020-09-29 16:54:04
【问题描述】:

我需要更改 oracle 数据库上的 id 字段大小以支持存储更长的 id。默认情况下,在 django 中使用 UUIDField 会创建一个 varchar 字段为 32 字节的表,但我们现在需要它来存储由 uuid.uui4 生成的 id 以及提供的字符长度最多为 80 的 id。 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.DatabaseError: ORA-01430: column being added already exists in table

【问题讨论】:

    标签: python sql django oracle django-models


    【解决方案1】:

    我不是 Django 专家,但您可能需要使用 Django 的 AlterField 选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2016-06-30
      • 2019-07-12
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多