1054, "Unknown column" 在 Django 4.0 中添加不存在的字段时出现异常
1054, "Unknown column" exception upon adding nonexisting field in Django 4.0
我突然想到添加附加字段的问题。我希望它是布尔值,但实际上该字段是哪种类型并不重要,因为我还尝试创建一个整数字段而不是布尔值并得到相同的异常。
我得到的异常是:
django.db.utils.OperationalError: (1054, "Unknown column 'salary_profile.confirmation_link_sent' in 'field list'")
这里是我正在谈论的模型,其字段已添加到最后一行:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
birth_date = models.DateField(null=True)
employment_date = models.DateField(null=True)
position = models.ForeignKey('Position', on_delete=models.PROTECT, null=True)
attestation_date = models.DateField(blank=True, null=True)
dismiss_date = models.DateField(blank=True, null=True)
photo = models.ImageField(blank=True, null=True, upload_to=user_directory_path)
email_is_confirmed = models.BooleanField(default=False)
confirmation_link_sent = models.BooleanField(default=False)
sqlite和mysql都遇到了这个问题。
到目前为止,我在 Internet 上找到的问题的唯一答案是“删除整个基地并重新开始”,说得很轻松 - 荒谬,但也在数据库本身中手动添加此字段。但我几乎不认为这是一个解决方案,因为想象一下我明天必须添加 20 个这样的字段,我也必须进行这些手动添加吗?
而且我必须补充一点,许多答案都回到了 django 1.7 等,指的是不再存在的命令 syncdb。
这个问题本身就很奇怪,因为它对我说“这个字段不存在”。当然不是,因为我想把它放在第一位。
我该怎么办?
如果重要的话:如果我在那里添加这个字段,任何其他模型都可以正常工作。所以我敢打赌,如果您尝试重现该问题,您将进行迁移而不会遇到任何麻烦。
我想,我需要添加有关此问题的其他信息。告诉我我应该带什么去 table.
谢谢。我在 forms.py 中向数据库发出了请求。在回溯的中间,他指向请求所在的表单。这个问题已经解决了。
我突然想到添加附加字段的问题。我希望它是布尔值,但实际上该字段是哪种类型并不重要,因为我还尝试创建一个整数字段而不是布尔值并得到相同的异常。
我得到的异常是:
django.db.utils.OperationalError: (1054, "Unknown column 'salary_profile.confirmation_link_sent' in 'field list'")
这里是我正在谈论的模型,其字段已添加到最后一行:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
birth_date = models.DateField(null=True)
employment_date = models.DateField(null=True)
position = models.ForeignKey('Position', on_delete=models.PROTECT, null=True)
attestation_date = models.DateField(blank=True, null=True)
dismiss_date = models.DateField(blank=True, null=True)
photo = models.ImageField(blank=True, null=True, upload_to=user_directory_path)
email_is_confirmed = models.BooleanField(default=False)
confirmation_link_sent = models.BooleanField(default=False)
sqlite和mysql都遇到了这个问题。
到目前为止,我在 Internet 上找到的问题的唯一答案是“删除整个基地并重新开始”,说得很轻松 - 荒谬,但也在数据库本身中手动添加此字段。但我几乎不认为这是一个解决方案,因为想象一下我明天必须添加 20 个这样的字段,我也必须进行这些手动添加吗?
而且我必须补充一点,许多答案都回到了 django 1.7 等,指的是不再存在的命令 syncdb。
这个问题本身就很奇怪,因为它对我说“这个字段不存在”。当然不是,因为我想把它放在第一位。
我该怎么办?
如果重要的话:如果我在那里添加这个字段,任何其他模型都可以正常工作。所以我敢打赌,如果您尝试重现该问题,您将进行迁移而不会遇到任何麻烦。
我想,我需要添加有关此问题的其他信息。告诉我我应该带什么去 table.
谢谢。我在 forms.py 中向数据库发出了请求。在回溯的中间,他指向请求所在的表单。这个问题已经解决了。