我在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)")
不包含任何应用程序,它工作正常。任何领导都会非常有帮助。
答案 0 :(得分:2)
检查数据库表的存储引擎。正如所提到的here旧MySQL使用的MyISAM与实际的InnoDB存储引擎不兼容。因此,如果您的数据库具有不同表的不同存储引擎,并且您尝试创建外键,则可能会发现此错误。至少,这是我的情况:) 希望这有助于某人