标签: prisma-graphql

未找到项目:'my-app@dev'

我正在关注 https://www.graph.cool/docs/1.0/quickstart/backend/typescript/typescript-rohd6ipoo4 for graphcool 并且我收到错误

{
 "errors": [
  {
  "code": 3016,
  "requestId": "api:api:cjc7gf91e002v0180uq2hqace",
  "message": "Project not found: 'my-app@dev'"
}]}
Run Code Online (Sandbox Code Playgroud)

用于查询和变异。我是 graphcool 的新手,所以不知道为什么会这样。我正在按照上述链接中提供的步骤进行操作。

Graphql 服务器:

const server = new GraphQLServer({
typeDefs: './src/schema.graphql',
resolvers,
context: req => ({
  ...req,
  db: new Graphcool({
  endpoint: 'http://localhost:60000/my-app/dev',
  secret: 'mysecret123',
    }),
  }),
})

$ graphcool info
Service Name: my-app

dev (cluster: `local`)

HTTP:       http://localhost:60000/my-app/dev
Websocket:  ws://localhost:60000/my-app/dev
Run Code Online (Sandbox Code Playgroud)

graphql graphcool prisma prisma-graphql

5
推荐指数
0
解决办法
535
查看次数

不能用字符串数组编写突变

不能在具有列表标量类型的 graphql 操场中使用 set。

我已经创建了我的 Prisma datamodel.graphql 并部署了它。我的运动类型中的一个字段是运动列表。我使用列表标量类型来定义这个字段,并在我的mutation.js 文件中写入了伴随的mutation。当我尝试在我的 graphql 操场中添加新练习时,出现此错误。

{
  "data": null,
  "errors": [
    {
      "message": "Variable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"0\" is not defined by type ExerciseCreatemovementInput at value.movement.\nVariable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"1\" is not defined by type ExerciseCreatemovementInput at value.movement.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createExercise"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我在 graphql 操场上写的突变。

mutation {
  createExercise(
    name: "split squat 3"
    movement: …
Run Code Online (Sandbox Code Playgroud)

javascript graphql prisma-graphql

5
推荐指数
1
解决办法
1269
查看次数

Prisma:工作流程是什么?

刚开始使用Prisma作为将GraphQL和MySQL集成到我正在开发的新项目中的一种方法.这很棒,我喜欢它简单地解决问题.关于使用Prisma开发时要遵循的工作流程,我有几个问题困扰着我.

例如:

昨天我根据教程设置了基本的Prisma和GraphQL服务器.一切都运作良好.我只有一个在我的datamodel.graphql中建模的类型.

今天早上我醒来并开始处理另一种类型并将其添加到我的datamodel.graphql中.Docker正在运行,我使用解析器更新index.js以支持新模型及其Querys/Mutations.但是,当使用node ./index.js我运行系统时,我得到一个错误,说它不知道新的模型.我怀疑Prisma架构没有刷新/更新所以我跑,graphql get-schema --project prisma但它告诉我没有任何改变.

显然我错过了一些东西.我不是以他们想要的方式与Prisma合作.任何人都可以说明事情的顺序,以便事情顺利进行吗?

本教程非常适合让您启动并运行,但我觉得它并没有很好地向开发人员介绍在日常的持续开发周期中使用Prisma的流程.

任何信息/见解/链接都非常有用.

非常感谢,

一个

UPDATE

对于那些对工作流程有点迷失的人.看一下CLI参考.它对所有与Prisma相关的任务非常有用(不一定与GraphQL服务器有关).链接

TL; DR:

每次数据模型更改时,您都需要重新部署prisma服务,以便可以使用新功能更新生成的prisma.graphql以使用数据库.我跑了prisma deploy瞧!

graphql prisma prisma-graphql

4
推荐指数
1
解决办法
629
查看次数

定义 prisma 数据模型中数组字段是否必需

以下有什么区别。何时使用其中一种而不是另一种?

zones: [Zone]
zones: [Zone!]
zones: [Zone]!
zones: [Zone!]!
Run Code Online (Sandbox Code Playgroud)

prisma prisma-graphql

4
推荐指数
1
解决办法
1463
查看次数

将 prisma 对象通过上下文传递给解析器更好还是直接使用它更好?

我想知道直接在解析器中使用 prisma 客户端或通过上下文传递它是否更好或者有什么区别。

在官方文档中它是通过上下文传递的:

const { prisma } = require('./generated/prisma-client');

const resolvers = {
  Query: {
    feed: (parent, args, context) => {
      return context.prisma.posts({ where: { published: true } })
    }
}

const server = new GraphQLServer({
  typeDefs: './src/schema.graphql',
  resolvers,
  context: {
    prisma,
  },
})
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么 prisma 客户端不直接在解析器中使用。

const { prisma } = require('./generated/prisma-client');

const resolvers = {
  Query: {
    feed: (parent, args, context) => {
      return prisma.posts({ where: { published: true } })
    }
}

const server = new …
Run Code Online (Sandbox Code Playgroud)

graphql apollo-server prisma prisma-graphql

4
推荐指数
1
解决办法
1843
查看次数

如何使用 nexus-prisma 制作嵌套突变解析器

我有以下数据模型:

type Job { 
    // ...
    example: String
    selections: [Selection!]
    // ...
}

type Selection { 
    ...
    question: String
    ...
}
Run Code Online (Sandbox Code Playgroud)

我这样定义我的对象类型:

export const Job = prismaObjectType({
  name: 'Job',
  definition(t) {
    t.prismaFields([
      // ...
      'example',
      {
        name: 'selections',
      },
      // ...
    ])
  },
})
Run Code Online (Sandbox Code Playgroud)

我这样做我的解析器:

t.field('createJob', {
  type: 'Job',
  args: {
    // ...
    example: stringArg(),
    selections: stringArg(),
    // ...
  },
  resolve: (parent, {
    example,
    selections
  }, ctx) => {
    // The resolver where I do a ctx.prisma.createJob and connect/create with …
Run Code Online (Sandbox Code Playgroud)

graphql prisma prisma-graphql nexus-prisma

4
推荐指数
1
解决办法
3326
查看次数

如何将共享到 GraphQL Bin 选项添加到我的 Apollo 服务器游乐场?

我正在使用 Apollo 服务器来实现 GraphQL API,它会自动为我提供一个 GraphQL Playground。根据GraphQL Playground 文档,我应该拥有(或至少能够启用)一个“共享”功能,该功能将创建一个 GraphQL Bin 链接(例如https://graphqlbin.com/OksD),我可以将其发送给同事,以便他们可以查看并运行我的相同查询。

不幸的是,这不能从 Apollo 服务器开箱即用。我如何启用此功能?如果这是不可能的,是否有另一种简单的方法可以让我从 GraphQL Playground 导出查询以供其他人导入?(我看到“复制卷曲”选项,但我没有看到从卷曲导入的简单方法。)

GraphQL Bin 图像

graphql apollo-server prisma-graphql graphql-playground

4
推荐指数
1
解决办法
1071
查看次数

Prisma 2 查询仅返回与所有提供的标签 ID 关联的记录

我有表格原则和标签。并且它们之间存在多对多关系(隐式连接)。

如果不使用prisma.raw,我如何运行以下查询?

SELECT p.id, p.title, p.description, p.createdAt, p.modifiedAt
    FROM principle p
   WHERE EXISTS (SELECT NULL
                   FROM _PrincipleToTag pt
                  WHERE pt.B IN (${tagIds.join(',')})
                    AND pt.A = p.id
               GROUP BY pt.A
                 HAVING COUNT(DISTINCT pt.B) = ${tagIds.length})
Run Code Online (Sandbox Code Playgroud)

如何更新此 Prisma 2 查询,以便返回的原则仅是与所有提供的 tagId 关联的原则?

export const principles = ({ tagIds }) => {
  const payload = {
    where: {
      //TODO filter based on tagIds
    },
  }
  return db.principle.findMany(payload)
}
Run Code Online (Sandbox Code Playgroud)

文档提到了containsandinevery,但我找不到我想要做的事情的例子。

我正在使用 RedwoodJs、Prisma 2、Apollo、GraphQL。 …

apollo-server react-apollo prisma prisma-graphql redwoodjs

4
推荐指数
1
解决办法
8045
查看次数

使用 nexus-prisma graphql 处理文件上传

我正在尝试将文件从前端应用程序上传到服务器,但我不断收到这个奇怪的错误,并且不知道为什么会发生这种情况。

错误是前端:

Variable "$file" got invalid value {}; Expected type Upload. Upload value invalid.
Run Code Online (Sandbox Code Playgroud)

后台报错:

GraphQLError: Upload value invalid.
at GraphQLScalarType.parseValue (/app/backend/node_modules/graphql-upload/lib/GraphQLUpload.js:66:11)
Run Code Online (Sandbox Code Playgroud)

这就是我添加上传标量的方法

Variable "$file" got invalid value {}; Expected type Upload. Upload value invalid.
Run Code Online (Sandbox Code Playgroud)

这就是我在 React/NextJS 应用程序中制作 uplaod 客户端的方法

GraphQLError: Upload value invalid.
at GraphQLScalarType.parseValue (/app/backend/node_modules/graphql-upload/lib/GraphQLUpload.js:66:11)
Run Code Online (Sandbox Code Playgroud)

即使当尝试使用前端应用程序以外的其他东西运行突变时,我也会遇到相同的错误,所以我猜问题出在我的后端设置上,尽管我搜索了很多方法来做到这一点似乎都不起作用。

apollo graphql prisma prisma-graphql nexus-prisma

4
推荐指数
1
解决办法
3093
查看次数

如何在 prisma 客户端中检索具有相同表的子查询?

select * 
from WeeklyChallengeCourses 
where weekly_challenge_id = (select weekly_challenge_id 
                             from WeeklyChallengeCourses 
                             where course_id = 210);
Run Code Online (Sandbox Code Playgroud)

结果将是以下选定的一项:

在此输入图像描述

const data = await context.prisma.weeklyChallengeCourses.findMany({
        where:{
            weekly_challenge_id: {
                ..............
            }
        },
    });
Run Code Online (Sandbox Code Playgroud)

postgresql node.js prisma prisma-graphql

4
推荐指数
1
解决办法
6358
查看次数