Prisma查询PlanetScale MySQL数据返回空响应求助
PlanetScale托管MySQL表存在数据,但Prisma
findMany 返回空响应且无报错 我在PlanetScale托管的MySQL数据表中确实存在数据,但使用Prisma执行findMany()查询时返回空对象{},且没有任何报错信息。
Prisma Schema 定义
model BindingTeacherLessons { bindingId Int teacherId Int lessons Int binding Binding @relation(fields: [bindingId], references: [id], onDelete: Cascade) teacher Teacher @relation(fields: [teacherId], references: [id], onDelete: Cascade) @@id([bindingId, teacherId]) @@index([bindingId]) @@index([teacherId]) }
执行的查询语句
const response = prisma.bindingTeacherLessons.findMany({})
排查方向与解决方案
- 确认Prisma客户端与数据库同步
检查是否执行过prisma generate和prisma db push(或prisma migrate deploy),确保Schema定义和数据库实际表结构完全匹配。同时确认Prisma连接的是包含目标数据的PlanetScale分支。 - 验证数据库连接配置
检查prisma/schema.prisma中的DATABASE_URL是否指向正确的数据库分支,以及账号是否拥有该表的读取权限。 - 手动确认数据存在性
通过PlanetScale控制台或MySQL客户端直接执行SELECT * FROM BindingTeacherLessons;,确认数据确实存在,同时检查表名、字段名的大小写是否和Schema一致(MySQL部分系统环境下对表名大小写敏感)。 - 缩小查询范围排查关联影响
尝试指定select参数只查询当前表字段,排除关联模型的潜在影响:const response = prisma.bindingTeacherLessons.findMany({ select: { bindingId: true, teacherId: true, lessons: true } }) - 开启Prisma查询日志
初始化Prisma客户端时添加日志配置,查看实际发送到数据库的SQL语句,确认查询逻辑是否符合预期:const prisma = new PrismaClient({ log: ['query', 'error'] })
内容的提问来源于stack exchange,提问作者atricoky
相关产品推荐
相关产品推荐

