Mysql 将更改迁移到模型时,South出错

Mysql 将更改迁移到模型时,South出错,mysql,sql,django,mysql-error-1067,mysql-error-1091,Mysql,Sql,Django,Mysql Error 1067,Mysql Error 1091,我已向模型中的用户添加了外键,但当我尝试使用South迁移数据库时,出现以下错误: _mysql_exceptions.OperationalError: (1067, "Invalid default value for 'user_id'") #1091 - Can't DROP 'user_id'; check that column/key exists South告诉我,我可以通过运行SQL命令从错误中恢复: ! You *might* be able to recover wit

我已向模型中的用户添加了外键,但当我尝试使用South迁移数据库时,出现以下错误:

_mysql_exceptions.OperationalError: (1067, "Invalid default value for 'user_id'")
#1091 - Can't DROP 'user_id'; check that column/key exists
South告诉我,我可以通过运行SQL命令从错误中恢复:

! You *might* be able to recover with:   = 
    ALTER TABLE `main_deal` DROP COLUMN `user_id` CASCADE; []
我试图运行SQL命令,但出现以下错误:

_mysql_exceptions.OperationalError: (1067, "Invalid default value for 'user_id'")
#1091 - Can't DROP 'user_id'; check that column/key exists
我是否需要将“user_id”添加到我的模型并将默认值设置为1

编辑: 以下是我添加到模型中的代码,以导致出现这种情况:

user = models.ForeignKey(User)

然后,我使用South迁移了模型。

当您运行
schemamigration
命令时,应该向您询问一些有关默认值的问题。如果您给出了错误的答案,则可能是您描述的问题造成的


如果您可以打开实际的迁移文件,抓取顶部附近的
forward
方法,并将其发布到此处,我应该能够找出哪里出了问题。

我猜您遇到了问题,因为您指定了不可为null的用户字段,但没有提供默认值。您需要提供默认值,例如
user=models.ForeignKey(user,default=foo)
或允许用户字段
user=models.ForeignKey(user,null=True)


顺便说一句,我认为最新版本的south在创建迁移时要求使用默认值。您使用哪个版本?

请发布您修改过的模型的代码。我在模型中添加了我修改过的代码。