我是 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/