【问题标题】:django.db.utils.OperationalError: no such table: Schedule_swimmingscoredjango.db.utils.OperationalError:没有这样的表:Schedule_swimmingscore
【发布时间】:2018-12-15 17:00:37
【问题描述】:

所以,这是我的模型 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 作为数据库。

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 2016-12-28
      • 2021-08-10
      • 1970-01-01
      • 2020-06-12
      • 2020-04-27
      • 2020-04-26
      • 1970-01-01
      相关资源
      最近更新 更多