无法将外键从一个模型迁移到另一个模型

时间:2015-10-21 13:00:22

标签: mysql django django-models

我有三个模型:汇编,配置器和类。我想移动一个"属"从装配模型到配置模型的外键。我在python代码中移动了它,生成了一个迁移,但是完全失败了:

django.db.utils.OperationalError: (1025, "Error on rename of './isotek_intranet_django/aion_assembly' to './isotek_intranet_django/#sql2-848-19e5' (errno: 152)")

哪个有用但不是。我的后端数据库是MariaDB。以下是迁移的相关部分:

operations = [
    migrations.RemoveField(
        model_name='assembly',
        name='genus',
    ),
    migrations.AddField(
        model_name='configurator',
        name='genus',
        field=models.ForeignKey(default=1, to='aion.Genus'),
    ),
]

我做错了什么(和为什么)?

请注意,我可以正常运行我的测试。它正在更新当前存在的失败的数据库。

Django是1.8发布。

1 个答案:

答案 0 :(得分:1)

你可能会遇到这个bug。在这种情况下,这意味着您必须在删除外键之前删除约束。作为短期修复,您可以尝试按照此answer手动执行此操作。