graphql - 生成 Prisma Graphql 架构时使用生成钩子(Hook)和部署后钩子(Hook)之间的区别?

标签 graphql prisma

我是 Prisma 新手,我喜欢使用它。

显然,我一直致力于使用 MySQL 创建演示服务器以进行开发。但是,当我尝试更新 prisma.yml 文件以生成 Prisma graphql schema 文件时,我发现有几种方法可以做到这一点。

首先,使用 yml 文件中的 generate 属性,如下所示:

generate:
    - generator: graphql-schema
      output: ./src/generated/prisma.graphql

第二次使用部署后 Hook 方法:

hooks:
    post-deploy:
        - graphql get-schema -p prisma

因此,我在想哪一种更适合 goto 方法,这两种不同的方法有哪些不同的用例?

结果

使用generate方法时我注意到的一件事是:我们生成的prisma.grapql文件非常简洁,并且其中没有写入任何注释。

片段:

type Query {
  todo(where: TodoWhereUniqueInput!): Todo
  todoes(where: TodoWhereInput, orderBy: TodoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Todo]!
  todoesConnection(where: TodoWhereInput, orderBy: TodoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TodoConnection!
  node(id: ID!): Node
}

但是在使用部署后方法时:prisma.graphql 文件带有各种描述性注释。

片段:

type Query {
  todoes(where: TodoWhereInput, orderBy: TodoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Todo]!
  todo(where: TodoWhereUniqueInput!): Todo
  todoesConnection(where: TodoWhereInput, orderBy: TodoOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TodoConnection!

  """Fetches an object given its ID"""
  node(
    """The ID of an object"""
    id: ID!
  ): Node
}

但是,我想知道是否还有比这更多的东西,作为初学者,我建议您了解一下获取 Prisma graphql 架构的好方法。

最佳答案

我认为这里推荐的方法是部署后,因为它提供了更清晰的输出。生成主要用于生成 Prisma 客户端,该客户端具有类型并为您提供访问数据所需的所有方法。

我个人使用生成如下:

generate:
  - generator: javascript-client
    output: ./generated/prisma-client/

这将生成 Prisma 类型,帮助查询您创建的模型中的数据。

此外,当您开始使用 Prisma 时,我建议 Prisma 2因为它是稳定的并且正在积极开发中。

关于graphql - 生成 Prisma Graphql 架构时使用生成钩子(Hook)和部署后钩子(Hook)之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62557386/

相关文章:

graphql - 如何在 .NET Core 6 中实现微服务的 GraphQL 模式拼接和身份验证

docker - Prisma 在 jenkins 中随机找不到 docker 镜像

api - AWS Api GateWay 是否支持 OData?

javascript - 如何使用 sequelize 在一个数据库请求中将数据插入多个表?

docker - Prisma部署Docker错误 “Could not connect to server”

postgresql - 使用 Prisma 的嵌套创建查询返回未定义

prisma - 如何在运行时更改 PrismaClient 数据库连接?

postgresql - Prisma2 prisma introspect 为外键返回奇怪的值

typescript - 在 NestJS 中使用与 GraphQL 中的 Input 和 Object 类型相同的类

graphql - 热巧克力中的 ScopedContextData VS LocalContextData VS ContextData