在新字段中添加了错误的默认值,现在无法迁移
Added wrong default value in new field and now can't migrate
我在我的一个模型中添加了一个用户外部字段并进行了迁移。我被提示添加一个默认值。 user 的默认值假定为 Int,表示 user_id。我没有添加 Int,而是添加了一个字符串 "username".
现在我坚持:
return int(value)
ValueError: invalid literal for int() with base 10: 'testuser'
我删除了与该模型关联的所有对象,并尝试迁移,但没有成功,出现了同样的错误。 (Model.objects.all().delete()
)
我恢复到以前的迁移,但没有解决问题,当我迁移时,它得到了相同的 ValueError。 (./manage.py migrate app 0037_auto_20170330_0326
)
最后,我删除了新的外国字段,但这也没有解决问题。
在这种情况下我还有哪些其他选择?
我的模型很简单:
class Chat(models.Model):
user = models.ForeignKey(User) #new field that was added
message = models.CharField(max_length=50)
如果您已经在迁移 0036,请尝试以下步骤:
删除迁移0037_auto_20170330_0326
。它将出现在以下位置:
appfolder -> migrations -> 0037_auto_20170330_0326.py
在 Chat
模型的 user
字段中设置 null=True
:
user = models.ForeignKey(User, null=True)
再次迁移!
我在我的一个模型中添加了一个用户外部字段并进行了迁移。我被提示添加一个默认值。 user 的默认值假定为 Int,表示 user_id。我没有添加 Int,而是添加了一个字符串 "username".
现在我坚持:
return int(value)
ValueError: invalid literal for int() with base 10: 'testuser'
我删除了与该模型关联的所有对象,并尝试迁移,但没有成功,出现了同样的错误。 (Model.objects.all().delete()
)
我恢复到以前的迁移,但没有解决问题,当我迁移时,它得到了相同的 ValueError。 (./manage.py migrate app 0037_auto_20170330_0326
)
最后,我删除了新的外国字段,但这也没有解决问题。
在这种情况下我还有哪些其他选择?
我的模型很简单:
class Chat(models.Model):
user = models.ForeignKey(User) #new field that was added
message = models.CharField(max_length=50)
如果您已经在迁移 0036,请尝试以下步骤:
删除迁移
0037_auto_20170330_0326
。它将出现在以下位置:appfolder -> migrations -> 0037_auto_20170330_0326.py
在
Chat
模型的user
字段中设置null=True
:user = models.ForeignKey(User, null=True)
再次迁移!