/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)。在生产中它有效但在本地它引发了错误,该错误在 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)
检查您的本地数据库。
当一条或多条记录不满足 NOT NULL 要求时,通常会出现此错误
UserProfile.objects.filter(phone_number=None)
您可以通过填写找到的对象的 phone_number 字段来解决此问题
或者删除没有填充的对象phone_number
更新
使用 database migrations
管理数据库更改可以防止此类情况发生
我在生产和本地迁移时遇到了一些麻烦。最后的情况是,在生产中只有初始迁移,而本地有 8 次迁移之类的。所以我决定使用
python manage.py migrate app zero
生产和本地(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)
检查您的本地数据库。
当一条或多条记录不满足 NOT NULL 要求时,通常会出现此错误
UserProfile.objects.filter(phone_number=None)
您可以通过填写找到的对象的 phone_number 字段来解决此问题
或者删除没有填充的对象phone_number
更新
使用 database migrations
管理数据库更改可以防止此类情况发生