django - 尝试迁移时完整性错误不是空约束失败
问题描述
我在尝试迁移时收到此错误:
"return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: unit_manifests.product_name_id"
这是参考下面模型中的 product_name 字段。
1) 为什么我需要为外键字段设置默认值?
2)我最初运行时没有默认=无,空白=真,空=真。我现在再次运行 makemigrations 但是当我迁移时我仍然收到错误,我相信它正在尝试首先运行旧迁移。我怎样才能解决这个问题?
模型.PY
class Manifests(models.Model):
reference = models.ForeignKey(Orders)
cases = models.IntegerField()
product_name = models.ForeignKey(Products, default=None, blank=True, null=True)
count = models.IntegerField()
CNF = models.DecimalField(max_digits=11, decimal_places=2, default=None, blank=True, null=True)
FOB = models.DecimalField(max_digits=11, decimal_places=2, default=None, blank=True, null=True)
def __str__(self):
return self.description
解决方案
Django 迁移是这样工作的。
首先运行 makemigrations,它将根据运行 makemigrations 生成的最后一个文件的更改创建一个文件。
然后运行 migrate ,它将推送尚未在表 'django_migrations' 中的数据库中注册的迁移文件夹中的更改。迁移文件名很重要,因为 django 使用它来标识迁移。
如果要伪造迁移,可以使用要伪造的迁移文件在迁移表中手动创建数据库实例。
假设迁移文件名为“0002_auto_20190212_1240.py”,然后在“django_migrations”表中插入一行,app=[app_name],name=0002_auto_20190212_1240,apply=[+1 seconds after last instance]。
推荐阅读
- core-data - 如何根据相关对象转换 SwiftUI 获取请求结果?
- avro - 关于模式演变,推荐的 Avro 类型命名空间/名称命名方案是什么?
- python - 如果列名有空格,如何重命名 pandas 中的列。例如:Nom 餐厅
- machine-learning - 通过反向传播更新权重
- spring-boot - 如何在控制器之前覆盖 SpringBoot 中的 InputStream?
- algorithm - 我必须使用哪种机器学习算法进行序列预测?
- xamarin.forms - Xamarin Forms:如何在 Xamarin Forms 中实现拖放 Flowlistview 标签?
- android - 如何将图标添加到 APK 的 app_name
- javascript - 当输入框为空时,我想在单击或按键(输入键)时发出警报
- azure - Kubernetes Pod 使用的 CPU 不超过 1m