【问题标题】:Unknown column in field list字段列表中的未知列
【发布时间】:2016-03-16 22:18:33
【问题描述】:

我收到以下关于字段列表中未知列“review_id”的错误。要重新创建它,从我可以运行的 django shell 中,

from reviews.models import Review
r = Review.objects.get(pk=1)
r.delete() 

这里是评论模型:

class Review(models.Model):
    reviewer = models.ForeignKey('projects.Person', related_name='reviewer', null=True)
    reviewee = models.ForeignKey('projects.Person', related_name='reviewee', null=True)
    review_type = models.ForeignKey(ReviewType, null=True)
    review_status = models.ForeignKey(ReviewStatus, null=True)
    cycle = models.ForeignKey(ReviewCycle, null=True)
    # Date time of original instance creation; not to be edited
    orig_date = models.DateTimeField(default=timezone.now())
    # Date review submitted
    submitted_date = models.DateTimeField(default=None, null=True)
    # Store historical revisions
    history = HistoricalRecords()

这是一个实时站点,所以我无法重置数据库。当我查看mysql中的reviews_review表时,没有列review_id(有一个列'id')。我尝试重新运行迁移并运行syncdb。

有一个建立在 Review 之上的模型,称为 peerEvaluation。当您尝试删除 Review 实例时,大概 Django 会尝试删除 peerEvaluation 以及 Review 实例。 peerEvaluation 的代码是:

class peerEvaluation(models.Model):
    review = models.ForeignKey(Review, null=True)
    # Text fields
    projects_worked_on = models.TextField(max_length=10000, null=True)
    analytical_well = models.TextField(max_length=10000, null=True)
    analytical_improve = models.TextField(max_length=10000, null=True)
    communication_well = models.TextField(max_length=10000, null=True)
    communication_improve = models.TextField(max_length=10000, null=True)
    planning_well = models.TextField(max_length=10000, null=True)
    planning_improve = models.TextField(max_length=10000, null=True)
    teamwork_well = models.TextField(max_length=10000, null=True)
    teamwork_improve = models.TextField(max_length=10000, null=True)
    # Date time of original instance creation, not to be edited
    orig_date = models.DateTimeField(default=timezone.now())
    # Store historical revisions
    history = HistoricalRecords()

任何帮助将不胜感激!谢谢!

【问题讨论】:

  • 您是否为PeerEvaluation 模型生成了迁移?

标签: sql django django-models


【解决方案1】:

问题在于历史表(来自 simple_history)。迁移不适用于他们。我删除了这些表,重新运行了迁移,并且它起作用了。不确定如何在不删除历史表的情况下使其工作,但幸运的是它们在这种情况下并不重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2023-03-14
    • 2020-10-27
    • 2017-09-03
    • 2011-07-27
    • 2015-08-02
    相关资源
    最近更新 更多