使用Django-Graphene查询提示shop_addresscountry关系不存在如何解决
报错核心说明
你新增GraphQL支持后执行查询返回的报错,核心原因是当前连接的数据库中不存在shop_addresscountry关系表,完整报错信息如下:
{ "errors": [ { "message": "relation \"shop_addresscountry\" does not exist\nLINE 1: ... \"shop_addresscountry\".\"is_shipping_country\" FROM \"shop_addr...\n ^\n" } ], "data": { "allAddresscountry": null } }
可按以下方向排查解决:
- 检查模型表名配置:打开
AddressCountry对应的Django模型定义,检查Meta子类下的db_table字段是否设置为shop_addresscountry,确认没有拼写、大小写、前后缀错误,PostgreSQL对表名大小写敏感,若自定义表名时使用了双引号需严格匹配大小写。 - 检查迁移执行状态:
- 执行
python manage.py makemigrations,确认新增AddressCountry模型后的变更已经生成了对应的迁移文件,没有遗漏未同步的模型修改 - 执行
python manage.py migrate,确认所有迁移都正常同步到数据库,执行过程没有报错
- 执行
- 检查Graphene Schema定义:确认查询对应的
DjangoObjectType绑定的是正确的AddressCountry模型类,没有绑定错其他模型,也没有自定义Resolver逻辑里硬编码了错误的表名 - 检查数据库连接一致性:确认当前运行Django服务的数据库配置,和执行migrate命令时使用的配置一致,没有出现连错开发库/测试库的情况,可直接登录数据库执行PostgreSQL命令
\dt shop_*查看当前库下所有shop前缀的表,确认shop_addresscountry是否真实存在
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

