django.db.utils.ProgrammingError: "eoias_company_credit_rating" is not a sequence
使用django插入数据的时候出现这个错误
先贴源代码:
store_results = [CreditRating(**j, company_name_id=company_name_id, company_name=company_name) for j in results]
if info.data_credit_rating:
CreditRating.objects.filter(company_name_id=company_name_id).delete()
CreditRating.objects.bulk_create(store_results)
起初是怀疑bulk_create这个多插入的方法有问题,以为哪里没用好,想debug源代码的,但是本项目是远程调试,无法debug服务器端的django源代码
后来还是打算排除是不是sql有问题,就在settiings.py中配置logger,使得能够打印django的日志,
方法参考调试Django时打印SQL语句的日志 – lemon_guess
可见django源代码的相关设置:
//python3.6site-package/django/db/backends/utils.py

打印出来sql以及相关报错日志:


将sql复制,在navicat中执行:

所以破案的,问题不是出在django身上,而是表本身。
然后在百度上查询得知,很可能就是序列没设置好id自增,检查一下果然如此,再更改id自增序列就好了