/django.db.utils.IntegrityError: NOT NULL constraint failed/ after python manage.py migrate app zero

/django.db.utils.IntegrityError: NOT NULL constraint failed/ after python manage.py migrate app zero

我在生产和本地迁移时遇到了一些麻烦。最后的情况是,在生产中只有初始迁移,而本地有 8 次迁移之类的。所以我决定使用

python manage.py migrate app zero 

生产和本地(django 1.8.7)。在生产中它有效但在本地它引发了错误,该错误在 makemigrationsmigrate 命令之后没有出现。

django.db.utils.IntegrityError: NOT NULL constraint failed: app_userprofile__new.phone_number

尝试了几次不同的东西后,迁移命令后也开始出现错误。

模型本身:

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    phone_number = models.IntegerField(null=True, blank=True, default=None)

检查您的本地数据库。

当一条或多条记录不满足 NOT NULL 要求时,通常会出现此错误

    UserProfile.objects.filter(phone_number=None)

您可以通过填写找到的对象的 phone_number 字段来解决此问题

或者删除没有填充的对象phone_number

更新

使用 database migrations 管理数据库更改可以防止此类情况发生