首页 > 解决方案 > django.db.utils.ProgrammingError: BLOB/TEXT 列“事物”在没有密钥长度的密钥规范中使用 - 但我的模型中没有“事物”

问题描述

我将 django 与 mysql 数据库连接,检查了 db 并将结果保存到 models.py

然后从anaconda提示我运行

python manage.py migrate

但我得到一些错误。其中之一是

django.db.utils.ProgrammingError:BLOB/TEXT 列“事物”在没有密钥长度的密钥规范中使用

我检查了我的模型,但我没有任何“事物”对象,只有“事物”,即我以这种方式定义的表和属性:

class Things(models.Model):
    id_things = models.FloatField(db_column='ID_Things', blank=True, null=True)  # Field name made lowercase.
    things = models.CharField(db_column='Things', blank=True, null=True, max_length=256)  # Field name made lowercase.
    id_db = models.FloatField(db_column='ID_db', primary_key=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'things'

所以我读过这个线程 MySQL error: key specification without a key length

当我们将属性定义为作为主键的文本字段或 blob 字段时,它是否说会弹出错误,但在我的模型中,“事物”不是主键......有什么问题?

标签: django-modelsstripnonetypemysql-connector-python

解决方案


刚刚解决了这个。我以前曾将具有名为“Thing”的属性的对象保存到数据库中。所以我删除了这些内容,Django 没有显示

django.db.utils.ProgrammingError:BLOB/TEXT 列“事物”在没有密钥长度的密钥规范中使用

了。


推荐阅读