【问题标题】:How to fix 'Django: table doesn't exist' when migrating from someone else's project?从别人的项目迁移时如何修复“Django:表不存在”?
【发布时间】:2019-06-06 04:48:43
【问题描述】:

尝试运行命令python manage.py makemigrations invigilators时出现以下错误:

django.db.utils.ProgrammingError: (1146, "表 'mydatabase.invigilators_shift' 不存在")

class Shift(models.Model):
    shiftName = models.CharField(max_length=255,blank=False,unique=True)
    exam = models.ForeignKey(Exam,on_delete=models.CASCADE,related_name="shifts")
    startTime = models.TimeField()
    endTime = models.TimeField()

    def __str__(self):
        return self.shiftName

我已经清除了所有以前的迁移,并且已经创建了一个空数据库。

【问题讨论】:

标签: mysql django django-migrations


【解决方案1】:

尝试运行这些命令

  • python manage.py 迁移
  • 删除应用迁移下的所有 initial.py 文件
  • python manage.py makemigrations
  • python manage.py 迁移

【讨论】:

    【解决方案2】:

    第一步: 只需“剪切Models.py中的所有模型粘贴模型到任何其他文本文件或记事本

    第二步: 只需从 forms.py 中“剪切”所有 forms 并在您粘贴的同一个文本文件中粘贴 模型

    第三步:views.py 中对所有导入的模型和表单进行评论,因为我们不希望出现错误。

    第四步: 在这三个步骤之后,您只需运行命令“python manage.py migrate”。

    第五步: 在该命令之后,您只需带回 models.py 中的所有模型和 forms.py 中的所有表单并取消注释所有导入的表单和 views.py 模型.

    最后一步: 在这些所有步骤之后,您只需运行另外两个命令 1.“python manage.py makemigrations” 2.“python manage.py migrate”

    & 完成,它可以工作了。

    【讨论】:

    • 请避免如此详细的步骤列表:“复制”、“剪切”和“评论”没有用。您的列表不能被概括为一个好的程序,因为它非常接近您的具体案例并且非常模糊“发表评论 [...] 因为我们不想要错误”。简单并提供示例。希望我的评论能帮到你:)
    • 好的,感谢您的评论,但它有效。
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2016-10-18
    • 2015-07-03
    • 2018-07-14
    • 2018-01-08
    • 2016-05-11
    • 2021-09-23
    • 2019-06-26
    相关资源
    最近更新 更多