运行`migrate`时,NOT NULL约束失败

ben*_*ham 5 django django-migrations

我更改了models.py文件,运行时出现migrate此错误.该属性是OneToOneField().我试过添加,null=True但似乎没有解决它.同样奇怪的是,即使当我注释掉属性并运行makemigrationsmigrate,我仍然会得到完全相同的错误.有没有办法来解决这个问题?我的模型看起来像这样:

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)
Run Code Online (Sandbox Code Playgroud)

wob*_*col 8

我的猜测是你创建了一个没有null = True的迁移,它不会迁移,然后你用null = True创建了第二个迁移.

运行"migrate"将按顺序运行两个迁移,因此第一个将再次失败.

假设是这种情况,则1:删除迁移文件夹中的两个最新文件.(首先打开它们以确认它们正在创建迁移,如我在删除之前所述).2:再次运行makemigrations,在models.py中使用null = True

这应该创建相当于第二个迁移文件,而不会发生失败的中间迁移.