使用Python Prisma Client时自增ID异常及字段不存在报错问题
问题解决:Python Prisma Client操作MySQL的两个常见问题
环境信息
- Python Prisma Client版本:v0.6.6
- Prisma CLI版本:4.1.1
- 数据库:MySQL
问题1:ID字段未自动生成,插入时提示需传入值
问题描述
serververification表的id字段已在schema.prisma中配置为@id @default(autoincrement()),但插入数据时未指定id仍提示需要传入该值。
解决步骤
- 确认
schema.prisma中id字段配置无误:model serververification { id Int @id @default(autoincrement()) // 其他字段定义... } - 重新执行命令同步schema与数据库,并更新Python客户端代码:
yarn prisma db push yarn prisma generate - 若仍有问题,可删除
prisma/generated目录后重新执行prisma generate,避免缓存导致的客户端代码未更新。
问题2:FieldNotFoundError - unverifiedRoleIds字段不存在
问题描述
执行创建数据代码时触发FieldNotFoundError,报错显示unverifiedRoleIds字段不存在。
解决方法
代码中使用的字段名unverifiedRoleIds与schema.prisma定义的unverifiedRoleId(单数形式)不匹配,修正字段名即可。
修正后的代码示例
await self.client.prisma.serververification.create( data={ "guildId": str(interaction.guild_id), "enabled": True, "panelMessageId": str(panel_message.id), "panelChannelId": str(panel_channel_id.id), "logChannelId": None, "unverifiedRoleId": str(unverified_role_id.id), # 修正为schema中定义的单数字段名 } )
内容的提问来源于stack exchange,提问作者jaal kamza
相关产品推荐
相关产品推荐

