【问题标题】:Query with N to M Panics使用 N 到 M 恐慌进行查询
【发布时间】:2021-04-04 12:49:45
【问题描述】:

复制步骤

日志

  prisma-client { clientVersion: '2.13.1' }  
  prisma-client Error: PANIC: 1
  prisma-client 
  prisma-client This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.
  prisma-client 
  prisma-client https://github.com/prisma/prisma-client-js/issues/new?body=Hi+Prisma+Team%21+My+Prisma+Client+just+crashed.+This+is+the+report%3A%0A%23%23+Versions%0A%0A%7C+Name++++++++++++%7C+Version++++++++++++%7C%0A%7C-----------------%7C--------------------%7C%0A%7C+Node++++++++++++%7C+v12.18.3+++++++++++%7C+%0A%7C+OS++++++++++++++%7C+undefined%7C%0A%7C+Prisma+Client+++%7C+2.13.1+++++++++++++%7C%0A%0A%0A%0A%23%23+Logs%0A%60%60%60%0A++prisma-client+%7B+clientVersion%3A+%272.13.1%27+%7D++%0A%60%60%60&title=PANIC%3A+1&template=bug_report.md
  prisma-client 
  prisma-client If you want the Prisma team to look into it, please open the link above ????
  prisma-client 
  prisma-client     at NodeEngine.handleRequestError (C:\Users\TreNr\AppData\Roaming\Prisma\Studio\e5cd9139\runtime\index.js:26642:21)
  prisma-client     at C:\Users\TreNr\AppData\Roaming\Prisma\Studio\e5cd9139\runtime\index.js:27295:36
  prisma-client     at processTicksAndRejections (internal/process/task_queues.js:97:5)
  prisma-client     at async PrismaClientFetcher.request (C:\Users\TreNr\AppData\Roaming\Prisma\Studio\e5cd9139\runtime\index.js:78094:24)
  prisma-client     at async X:\dev\familytreebackend\node_modules\@prisma\cli\build\index.js:104367:25
  prisma-client     at async X:\dev\familytreebackend\node_modules\@prisma\cli\build\index.js:104350:22
  prisma-client     at async Photon.request (X:\dev\familytreebackend\node_modules\@prisma\cli\build\index.js:104391:34)
  prisma-client     at async PhotonService.respond (X:\dev\familytreebackend\node_modules\@prisma\cli\build\index.js:104569:38)
  prisma-client     at async Object.StudioServer2.onWSMessage [as callback] (X:\dev\familytreebackend\node_modules\@prisma\cli\build\index.js:104717:29)  +30s
  prisma-client { clientVersion: '2.13.1' }  +5s
  1. 在婚姻和用户之间创建具有 n 到 m 关系的 db 模式
...
model User {
  id         Int        @id @default(autoincrement())
  forename   String
  lastname   String
  marriages  Marriage[]
}

model Marriage {
  id    Int    @id @default(autoincrement())
  users User[]
}
  1. 迁移并开始工作室
npx prisma migrate dev --preview-feature
npx prisma studio
  1. 创建 2 个用户并在他们之间建立婚姻

  2. 查询用户

恐慌并出现以下错误https://github.com/prisma/prisma-client-js/issues/955

思考

似乎与prisma.user.findMany() 直接相关。

当用作查询时

    Query: {
        users: (_, __, context) => {
            const pc: PrismaClient = context.prisma;
            return pc.user.findMany({ include: { marriages: true } });
        },
        user: async (_, args, context) => {
            const pc: PrismaClient = context.prisma;
            const users = pc.user.findUnique({ where: { id: parseInt(args.id) }, include: { marriages: true } });
            return users;
        }
    }
  • 失败
query {
  users {
    id
    marriages {
      id
    }
  }
}
  • 作品
query {
  user(id: 1) {
    id
    marriages {
      id
    }
  }
}

另一个观察结果:

仅当将婚姻与 findMany 结合使用时才会发生。

    users: (_, __, context) => {
        const pc: PrismaClient = context.prisma;
        return pc.user.findMany({ include: { marriages: true } });
    }

如果不包括没有错误。如果它包含在 findUnique 中也不会起作用

【问题讨论】:

    标签: graphql prisma


    【解决方案1】:

    上述观察到的问题似乎是最新版本中的一个错误。

    详情:https://github.com/prisma/prisma-client-js/issues/955

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      相关资源
      最近更新 更多