标签: prisma-graphql

GraphQL 错误中的“位置”指的是什么?

我正在学习 GraphQL 节点/Prisma 服务器教程,但由于代码中的某些问题而遇到错误。我已经解决了错误,但我想了解错误消息,特别是locations指的是什么?也就是说,我有location第 2 行第 3 列的一个,但是第 2 行第 3 列是什么?我的代码中的相关方法(signup在本例中为 )?我的突变?

// error message 
{
  "data": {
    "signup": null
  },
  "errors": [
    {
      "message": "secretOrPrivateKey must have a value",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "signup"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

graphql prisma-graphql

6
推荐指数
1
解决办法
2061
查看次数

如何在单个Docker容器中传递运行Prisma服务器的环境变量

文档中包含的docker-compose.yml示例非常适合本地开发,在本地开发中,人们可能使用docker运行多个服务:

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:__LATEST_PRISMA_VERSION__
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        managementApiSecret: __YOUR_MANAGEMENT_API_SECRET__
        port: __YOUR_PRISMA_SERVER_PORT__
        databases:
          default:
            connector: __YOUR_DATABASE_CONNECTOR__
            migrations: __ENABLE_DB_MIGRATIONS__
            host: __YOUR_DATABASE_HOST__
            port: __YOUR_DATABASE_PORT__
            user: __YOUR_DATABASE_USER__
            password: __YOUR_DATABASE_PASSWORD__
  mongo:
    image: mongo:__LATEST_PRISMA_VERSION__
    restart: always
    ports:
    - "27017:27017"
    volumes:
      - mongo:/var/lib/mongo
Run Code Online (Sandbox Code Playgroud)

但是,在生产中,没有db在容器中运行。实际上,我们正在使用DBaaS来托管数据库。我们正在使用的数据库是Mongo。

因此,我们需要将Prisma服务器从切换docker-compose updocker run...

我们面临的问题是如何设置Prisma容器运行所需的所有环境变量。

我看到两个可能的选择:

  1. 将单个变量传递给容器
  2. 仅传递PRISMA_CONFIG_PATH指向yml配置文件的变量,例如,prisma_config.yml

选项1

在docker-compose.yml中,该PRISMA_CONFIG变量作为多行字符串传递。

在Internet上搜索时,我发现单个变量的对应列表应为:

      PORT: $PORT
      SCHEMA_MANAGER_SECRET: $SCHEMA_MANAGER_SECRET
      SCHEMA_MANAGER_ENDPOINT: $SCHEMA_MANAGER_ENDPOINT
      SQL_CLIENT_HOST_CLIENT1: $SQL_CLIENT_HOST
      SQL_CLIENT_HOST_READONLY_CLIENT1: $SQL_CLIENT_HOST
      SQL_CLIENT_HOST: $SQL_CLIENT_HOST
      SQL_CLIENT_PORT: $SQL_CLIENT_PORT
      SQL_CLIENT_USER: $SQL_CLIENT_USER …
Run Code Online (Sandbox Code Playgroud)

yaml docker graphql prisma prisma-graphql

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

在prisma部署上出现内部服务器错误

我在 Heroku 上有一个 Postgres 数据库,在部署数据模型时prisma deploy经常会产生以下错误。

ERROR: Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjxrmcnpx00hq0692zuwttqwv

{
 "data": {
   "addProject": null
 },
 "errors": [
   {
     "message": "Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjxrmcnpx00hq0692zuwttqwv",
     "path": [
       "addProject"
     ],
     "locations": [
       {
         "line": 2,
         "column": 9
       }
     ],
     "requestId": "local:cjxrmcnpx00hq0692zuwttqwv"
   }
 ],
 "status": 200
}
Run Code Online (Sandbox Code Playgroud)

在检查 Docker 日志时,我看到了这个错误:

Jul 14, 2019 12:18:34 PM org.postgresql.Driver connect
prisma_1 …
Run Code Online (Sandbox Code Playgroud)

pgadmin docker heroku-postgres prisma prisma-graphql

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

订阅不适用于 Prisma 2 和 Nexus?

Nexus 的订阅没有记录,但我搜索了 Github 并尝试了书中的每个示例。这对我来说不起作用。

我已经克隆了Prisma2 GraphQL 样板项目,我的文件如下:

prisma/schema.prisma

datasource db {
  provider = "sqlite"
  url      = "file:dev.db"
  default  = true
}

generator photon {
  provider = "photonjs"
}

generator nexus_prisma {
  provider = "nexus-prisma"
}

model Pokemon {
  id      String         @default(cuid()) @id @unique
  number  Int            @unique
  name    String
  attacks PokemonAttack?
}

model PokemonAttack {
  id      Int      @id
  special Attack[]
}

model Attack {
  id     Int    @id
  name   String
  damage String
}
Run Code Online (Sandbox Code Playgroud)

src/index.js

const { GraphQLServer } = require('graphql-yoga') …
Run Code Online (Sandbox Code Playgroud)

javascript graphql prisma prisma-graphql nexus-prisma

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

Prisma:有什么方法可以执行 javascript 作为 prisma 数据类型的默认值吗?

在我的数据模型中,作为 id 的类型,我想生成一个以用户开头的默认值。

所以 id 会像这样user..rear33422qeqr

type User {

  myId: String! @default (`user${2+2}`)
  name: String!
  email: String! @unique

}
Run Code Online (Sandbox Code Playgroud)

是否可以调用 javascript 函数或使用字符串插值 ( user${2+2})

javascript graphql graphql-js prisma prisma-graphql

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

运行 prisma init 时 Prisma 不生成文件

运行 prisma init 不会生成文件。它不会生成以下 3 个文件。

  1. 数据模型.graphql
  2. docker-compose.yml
  3. 棱镜.yml

最终得到这个错误:-

{
     "errors": [
     {
        "message": "Project not found: 'graphiql@default'",
        "code": 3016,
        "requestId": "local:api:cjh3r908l000s0834adw100sj"
     }
  ] 
}
Run Code Online (Sandbox Code Playgroud)

docker docker-compose graphql prisma prisma-graphql

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

无法找到当前平台“debian-openssl-1.0.x”的查询引擎二进制文件

我需要有关Dockerize我的Prisma + GraphQL的帮助,我尝试了更多选项和技巧来解决此问题,但无法使其工作。

看起来当我实际运行应用程序时没有 Dockerize 应用程序工作完美,如下所示

在此输入图像描述

但是在 Dockerize 应用程序之后,它向我显示如下错误

在此输入图像描述

谁能帮我解决这个问题,我无法在本地环境中发布或 Dockerize 应用程序?

Dockerfile

# pull the official base image  
FROM node:10.11.0 
 
# set your working directory  
WORKDIR /api  

# install application dependencies  
COPY package*.json ./

RUN npm install --silent  

RUN npm install -g @prisma/cli

# add app  
COPY . ./  
 
# will start app  
CMD ["node", "src/index.js"] 
Run Code Online (Sandbox Code Playgroud)

docker prisma-graphql

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

Prisma Schema 中的多态性 - 最佳实践?

这更像是一个设计问题,而不是一个编码问题。假设有以下架构:

// schema.prisma
// Solution 1

model Entity {
  id    Int          @id @default(autoincrement())
  attrs EntityAttr[] 
}

model EntityAttr {
  id       Int         @id @default(autoincrement())
  value    Json        // or String, doesnt matter much here
                       // the point is I need to attach info on the
                       // join table of this relation
  attr     Attr        @relation(fields: [attrId], references: [id])
  entity   Entity      @relation(fields: [entityId], references: [id])

  entityId Int
  attrId   Int

  @@unique([entityId, attrId])
}

model Attr {
  id       Int          @id @default(autoincrement())
  entities EntityAttr[]   
}
Run Code Online (Sandbox Code Playgroud)
// Solution …
Run Code Online (Sandbox Code Playgroud)

nexus graphql prisma prisma-graphql nexus-prisma

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

使用 Prisma 订购嵌套/二级数组?

我正在使用 Prisma 和 PostgreSQL。我在这里抓一些东西:

await prisma.items.findMany({
        where: { itemId: itemId },
        include: {
            modules: {
                include: {
                    lessons: true
                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我不需要订购它们items自己,但我想订购我拿回来的modules& 。lessons两者都有一个 INT 属性(称为:),number我可以在其上执行排序,但我不知道如何使用 prisma / postgresql 执行此操作,或者即使这是可能的。

有任何想法吗?

sql postgresql prisma prisma-graphql prisma2

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

如何使用 prisma 在react、graphql中的更新突变中访问object.id

我正在尝试弄清楚如何访问我在应用程序中所做的更新突变中的 object.id 。

我有一个名为 IssueGroup 的对象。我已经创建和删除了突变,并且在大多数情况下,它们工作正常。我陷入了更新突变的困境,因为我似乎无法让它识别我正在尝试更新的对象的 id。

我有一个表格:

import * as React from "react"
import { gql } from "@apollo/client"
import type { IssueGroupInput } from "lib/graphql"
import { QueryMode, Role, SortOrder, useAllIssueGroupsQuery,  useDeleteIssueGroupMutation, useUpdateIssueGroupMutation  }  from "lib/graphql"
import { AdminCreateIssueGroupForm } from "components/AdminCreateIssueGroupForm"
import { AdminUpdateIssueGroupForm } from "components/AdminUpdateIssueGroupForm"
import { Modal } from "components/Modal"


const __ = gql`
  query AllIssueGroups {
    allIssueGroups {
      id 
      title
      description
    }
  }
  mutation deleteIssueGroup($id: String!) {
    deleteIssueGroup(id: $id) {
      id
      title
      description …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql prisma prisma-graphql

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