我在生产和本地迁移时遇到了一些麻烦。最后情况是,在生产中只有初始迁移,而且当地有8次迁移或其他东西。所以我决定使用
python manage.py migrate app zero
在生产和localy(django 1.8.7)。在生产中,它起作用但在本地它引起的错误在makemigrations
或migrate
命令之后没有出现。
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)
答案 0 :(得分:3)
检查您的本地数据库。
当一个或多个记录不符合NOT NULL要求时,通常会发生此错误
UserProfile.objects.filter(phone_number=None)
您可以通过填写找到的对象的phone_number字段来解决此问题
或删除没有填充phone_number的对象
<强>更新强>
使用database migrations
管理数据库更改可以防止此类情况