我有一个带有外键字段的模型。我想删除外键引用。但是,由于以下错误,迁移失败:
Cannot delete or update a parent row: a foreign key constraint fails
我理解正在发生什么,但我不知道如何使用Django正确解决这个问题。现在(因为我在我的项目的开始),我手动进入MySQL数据库并删除表并重新迁移,就像它是第一次迁移一样。
有没有办法,使用Django来解决这个外键约束问题?
<小时/> 我正在使用Django 1.7
编辑 - 迁移之前/之后的模型
之前:
class Skills(models.Model):
# fields here...
class Project(models.Model):
skills = models.ForeignKey(Skills, verbose_name = "Required Skills", blank = True, null = True)
后:
class Skill(models.Model):
# fields here...
class Project(models.Model):
skills = models.ForeignKey(Skill, verbose_name = "Required Skills", blank = True, null = True)
我很确定我所做的一切都是从Skill
模型中删除了“Plural”。 makemigrations
命令工作正常,但migrate
命令失败并出现上述错误。
编辑2
遇到同样的错误:
Cannot drop column 'skills_id': needed in a foreign key constraint 'projects_project_skills_id_4cc7e00883ac4de2_fk_projects_skill_id'
这次我从模型skill
Project
答案 0 :(得分:0)
我用过的小黑客:
operations = [
migrations.AlterField(
model_name='projects_project',
name='skills',
field=models.IntegerField(default=0)
),
..... other migration entries now after this.
]