我更改了我的 models.py 文件并在运行时 migrate
我收到这个错误。该属性是一个 OneToOneField()。我试过添加 null=True
但这似乎并不能解决问题。即使我注释掉该属性并运行 makemigrations
也很奇怪。其次是 migrate
,我仍然得到完全相同的错误。有没有办法来解决这个问题?我的模型看起来像这样:
class Estimator(Employee):
avg_estimate = models.IntegerField()
class Job(models.Model):
created = models.DateTimeField(auto_now_add=True)
estimator = models.OneToOneField(Estimator, null=True)
address = models.CharField(max_length=100)
completed = models.BooleanField(default=False)
最佳答案
我的猜测是您创建了一个没有 null=True 的迁移,该迁移不会迁移,然后您创建了第二个带有 null=True 的迁移。
运行“migrate”将按顺序运行两个迁移,因此第一个将再次失败。
假设是这种情况,那么
1:删除迁移文件夹中最近的两个文件。 (首先打开它们以确认它们正在创建迁移,就像我在删除它们之前描述的那样)。
2:再次运行 makemigrations,在你的 models.py 中使用 null=True
这应该创建相当于第二个迁移文件,没有失败的中间迁移。
关于django - 运行 `migrate` 时 NOT NULL 约束失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181638/