首页 > 解决方案 > django.db.utils.OperationalError:没有这样的表:Schedule_swimmingscore

问题描述

所以,这是我的模型 SwimmingScore:

class SwimmingScore(models.Model):
    team = models.ForeignKey(Team, related_name='team_swimming', on_delete=models.CASCADE)
    gold = models.IntegerField(default='0')
    silver = models.IntegerField(default='0')
    bronze = models.IntegerField(default='0')
    fourth = models.IntegerField(default='0')
    points = models.IntegerField(default='0')

我使用了命令python manage.py makemigrations然后python manage.py migrate。所以当我通过网站打开管理员时,它显示“没有这样的表”,我已经通过python manage.py dbshel​​l >.table确认了它,实际上没有表 forSwimmingScore,但是当我重新运行python manage.py makemigrations,它的行为就像模型实际上已迁移一样,对于 crosscheck ,我已经更改了一个字段,并且在终端上它实际上正在显示它:

Migrations for 'Schedule':
  Schedule/migrations/0003_auto_20180707_0815.py
    - Alter field team on swimmingscore

处理此类案件的标准程序是什么?我完全陷入其中。我在 Django 中使用 sqlite3 作为数据库。

标签: djangodjango-models

解决方案


删除 dbsqlite 文件和所有迁移文件,然后运行​​python manage.py makemigrations然后python manage.py migrate为我工作。实际上这种类型的错误发生在我们使用一些以前使用过的模型名称时,我们已经删除了,但是它们在 sqlite 中仍然有一个表,所以 django 不能让新表形成,所以错误“找不到表”可能会出现。谢谢 :)


推荐阅读