graphql-cli 输出不产生@unique

Posted

技术标签:

【中文标题】graphql-cli 输出不产生@unique【英文标题】:graphql-cli output does not produce @unique 【发布时间】:2019-01-02 21:37:06 【问题描述】:

我正在使用graphql-cli 为 Prisma 服务器生成数据模型。但是,graphql-cli 在没有@unique 的情况下继续生成 id 属性,当我将其部署到 prisma 演示服务器时出现此错误。

id 字段是保留的,格式必须为:id:ID! @独特。

所以我的问题是如何让 graph-cli 生成 @unique?

我的 prisma.graphql(aka datamodel.graphql) 有

type Comment implements Node 
  id: ID!
  content: String!
  userIdCommenBy: String!
  videoId: String!
  createdTime: String!

这个类型应该是

type Comment implements Node 
  id: ID! @unique
  content: String!
  userIdCommenBy: String!
  videoId: String!
  createdTime: String!

schema.graphql

type Query 
  feeds: [Video]
  users: [User]
  user: User
  videos: [Video]
  video: Video
  comments: [Comment]
  comment: Comment
  questions: [Question]
  question: Question


type Mutation 
  addUser(id: ID, firstName: String, lastName: String, companyId: String): User
  addComment(id: ID, content: String, userIdCommenBy: String): Comment
  addQuestion(id: ID, title: String, userIdAsekedBy: String, isAnonymous: String): Question


type User 
  id: ID
  email: String
  password: String
  firstName: String
  lastName: String
  companyId: String
  createdTime: String


type Video 
  id: ID
  questionId: String
  imgUrl: String
  videoUrl: String
  views: Int
  likes: Int
  isPrivate: Boolean
  comments: [Comment]
  createdTime: String


type Comment 
  id: ID
  content: String
  userIdCommenBy: String
  videoId: String
  createdTime: String


type Question 
  id: ID
  title: String
  userIdAsekedBy: String
  isAnonymous: Boolean
  countSkipped: Int
  views: Int
  createdTime: String


type Notification 
  isRead: Boolean
  isHidden: Boolean
  senderId: String
  recipientId: String
  typeOfNotification: String
  createdTime: String

.graphqlconfig.yml

projects:
    app:
        schemPath: src/schema.graphql
        extensions:
            endpoints:
            default: $env:API_ENDPOINT
    prisma:
        schemaPath: src/prisma/prisma.graphql
        extensions:
            prisma: src/prisma/prisma.yml

我运行的命令 graphql get-schema --project prisma --dotenv .env.dev

谢谢!

【问题讨论】:

【参考方案1】:

您将数据模型(通常称为datamodel.graphql)与Prisma 数据库架构(通常称为prisma.graphql)混淆了。

Prisma 使用数据模型自动生成 Prisma 数据库模式:

@unique 指令特定于 Prisma。因此,您只能在数据模型中使用它。 Prisma 数据库模式不应该再有这个指令了。

我刚刚创建了一个小要点来更详细地解释两者之间的区别:https://gist.github.com/nikolasburk/eef24cd0d907b4a3e073723054cf847d

【讨论】:

感谢您的评论。现在,我清楚地明白了。基本上,我需要 datamodel.graphql(用于 Prisma 数据库)和 schema.graphql(用于我的 graphql 服务器)。它现在正在工作。我很感激!

以上是关于graphql-cli 输出不产生@unique的主要内容,如果未能解决你的问题,请参考以下文章

artisan migrate 命令不迁移,不产生输出

Java OCR 不产生任何输出

MySQL过程不产生输出

PySpark shell 命令不产生任何输出

“ php artisan”根本不产生任何输出(!!)

通过不产生输出使用 TIMESTAMP 进行基本查询