Django:删除唯一约束并创建迁移

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:删除唯一约束并创建迁移相关的知识,希望对你有一定的参考价值。

我创建了一个模型并在Django中迁移,其中一个字段具有唯一的键约束。现在我正在尝试删除唯一约束并使用新更改生成另一个迁移文件,但它说“似乎没有任何更改”。

我尝试使用命令python manage.py schemamigration --auto

PS:我在场上使用OnetoOne关系。

答案

我想这会解决你的问题,

第1步:将您的models.py更改为所需的格式 第2步:运行命令python manage.py makemigrations app_name 第3步:运行命令python manage.py migrate

另一答案

好问题。一对一关系意味着一条记录唯一地与另一条记录相关联。即使代码中的唯一约束被明确删除(对于一对一字段),它也不会反映在您的数据库中。因此它不会创建任何迁移文件。

如果你为外来约束尝试相同的东西,它将工作。

另一答案

我发现django自动迁移文件生成有问题且不完整。

实际上我昨天遇到了django迁移的另一个类似问题。

我是如何解决的:

  • 从/ migrations文件夹中删除所有迁移文件
  • 做一个新的makemigrations
  • 运行python manage.py migrate --fake所以django不会尝试重建..
  • 嘿presto!工作和模型更新:D

以上是关于Django:删除唯一约束并创建迁移的主要内容,如果未能解决你的问题,请参考以下文章

EF Core 迁移:在存在时删除唯一约束

添加索引迁移中的唯一性被忽略

由于房间中的唯一约束,数据库迁移失败

EF CodeFirst 创建唯一性约束

Laravel 5.4 - 删除外键的唯一约束时出错[重复]

Django 1.9 在迁移中删除外键