django.db.utils.IntegrityError: datatype mismatch
班级表原来是以班级名作为主键,后又加了id列,但是未修改主键,而且将其设置为CharField,后想要将id修改为主键并转换为AutoField自增类型,在执行migrate时会报上面的错误,提示数据类型不匹配。
解决方法:在命令行执行如下代码
python manage.py flush
该方法会重置sqlite3数据库,将其中数据全部清空,如果处于调试阶段数据量不多可以使用,但是慎用。
执行完该方法后,重新makemigrations,migrate,又报如下错误。
django.db.utils.OperationalError: duplicate column name: id
百度说是因为列名重复,执行如下代码后解决成功
python manage.py migrate --fake
在Django中,尝试将班级表的主键从班级名改为id(CharField转为AutoField)时遇到了IntegrityError。解决方案包括:通过命令行重置数据库,删除重复列名,以及清除migration和sqlite3数据库后重新迁移。注意,这些方法可能清空数据,建议备份。
8931

被折叠的 条评论
为什么被折叠?



