Django MySQL错误创建表

时间:2015-04-04 14:59:58

标签: python mysql django

我在Django论坛上提出了与this ticket类似的问题。我该如何解决这个问题?

我还扩展了用户模型,如下所示: -

class Profile(models.Model):
    street_address = models.CharField(max_length=80, blank=True, null=True)
    city = models.CharField(max_length=80, blank=True, null=True)
    state = models.CharField(max_length=80, blank=True, null=True)
    zip = models.CharField(max_length=30, blank=True, null=True)
    country = models.CharField(max_length=50, blank=True, null=True)
    phone = models.CharField(max_length=50, blank=True, null=True)
    birth = models.DateField(blank=True, null=True)
    photo = models.ImageField(upload_to='media')
    user = models.OneToOneField(User,primary_key=True)

但我不认为问题出在模型上,因为即使我从INSTALLED_APPS列表中删除包含模型的应用程序并运行manage.py migrate命令,它仍然会抛出相同的错误,即

django.db.utils.OperationalError: (1005, "Can't create table 'db.#sql-456_113' (errno: 150)")

不包含任何应用程序,它工作正常。任何领导都会非常有帮助。

1 个答案:

答案 0 :(得分:2)

检查数据库表的存储引擎。正如所提到的here旧MySQL使用的MyISAM与实际的InnoDB存储引擎不兼容。因此,如果您的数据库具有不同表的不同存储引擎,并且您尝试创建外键,则可能会发现此错误。至少,这是我的情况:) 希望这有助于某人