Python与数据库迁移过程中问题解决

1.问题

django.db.utils.OperationalError: (1051, "Unknown table 'mydorm.users_studen t'")`

原因:
在navicat中删除了数据库中某表的字段
解决办法:
在终端输入
python manage.py migrate --fake
然后进行迁移即可(注:数据需要重新录入)
python manage.py migrate
2.问题

django.db.utils.OperationalError: (1091, "Can't DROP 'xxxxx'; check that column/key exists")

解决办法:
python manage.py migrate field --fake

在这里插入图片描述

在执行python manage.py migrate field --fake APP名 表名,比如我这里执行的就为migrate --make field 0003_people_修改日期
3.问题

django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE8\x96\x9B\xE8\x89\xB3…’ for column ‘sname’ at row 1)

解决办法:修改编码

CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

alter table 表名 change 列名 varchar(40) character set utf8;

4.问题

django.db.utils.OperationalError: (1060, "Duplicate column name 'to_user_id'")`

django在migrate时报错,意思是字段名重复
应该是之前创建后删除之类操作导致的,查看表中字段XXX已存在

解决办法:
1, 在django的migrations目录下,在新生成的记录中,找到新建字段的语句,将其复制到前一个记录里面
2, 然后将后面(新生成文件)含有新建字段的记录删除。
3,再次更新迁移:
python manage.py makemigrations
python manage.py migrate
4.问题

django.db.utils.OperationalError: (1138, 'Invalid use of NULL value')

出现该错误的原因可能是因为已存在的数据的‘编号’列为null,与not null的设置冲突。(查到的原因)。
解决办法:
删除历史迁移记录,重新迁移就可以

参考:
https://blog.csdn.net/res2677/article/details/111353325
https://www.cnblogs.com/-xunmi-/p/12856372.html
https://www.cnblogs.com/hany-postq473111315/p/14379429.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值