Prisma:工作流程是什么?

Prisma: What's the workflow?

刚开始使用 Prisma 将 GraphQL 和 MySQL 集成到我正在处理的新项目中。太棒了,我喜欢它简单的布局。关于使用 Prisma 开发时要遵循的工作流程,我有几个问题困扰着我。

例如:

昨天我按照教程设置了基本的 Prisma 和 GraphQL 服务器。一切都很好。我的 datamodel.graphql 中只有一种模型。

今天早上我醒来并开始研究另一种类型并将其添加到我的 datamodel.graphql 中。 Docker 是 运行ning,我用解析器更新 index.js 以支持新模型,它是 Querys/Mutations。但是,当涉及到使用 node ./index.js 对系统进行 运行 设置时,我收到一条错误消息,指出它不知道新模型。我怀疑 Prisma 模式没有 refreshed/updated 所以我 运行 graphql get-schema --project prisma 但它告诉我什么都没有改变。

显然我遗漏了一些东西。我没有以它喜欢的方式与 Prisma 合作。任何人都可以告诉我要使事情 运行 顺利进行必须发生的事件顺序吗?

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

任何 info/insight/links 都会非常有用。

非常感谢,

一个

更新

对于对工作流程有点迷茫的其他人。查看 CLI 参考。它对所有与 Prisma 相关的任务都非常有用(不一定是与 GraphQL 服务器有关的所有事情)。 LINK

TL;DR:

您需要在每次数据模型更改时重新部署您的 prisma 服务,以便生成的 prisma.graphql 可以使用新功能更新以与数据库一起使用。我 运行 prisma deploy 瞧!

您缺少 prisma deploy 步骤。

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

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

请按照以下要点更详细地了解两者之间的区别:https://gist.github.com/nikolasburk/eef24cd0d907b4a3e073723054cf847d

不要忘记使用 prisma deploy 部署数据模型。

你在这里有一个完整的工作示例: https://github.com/alan345/naperg

除了在 CLI 中发出的 prisma deploy 命令之外,不要忘记还发出 prisma generate 命令,Prisma generate 是创建 javascript 的额外步骤用于从数据库自动生成的所有 CRUD 操作的函数。

您可能不想要这种额外的间接(或抽象)级别,尽管 Prisma 确实出于多种原因推荐它 (Prisma Architecture)

还有一个 post 部署挂钩,您可以在 prisma.yml 文件中输入,然后每次您 运行 时自动 运行 发送您的 prisma generate 命令prisma deploy。少了一步让你记住。

      // prisma.yml file

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

hooks:
  post-deploy:
    - prisma generate

我还没有谈到 prisma 客户端函数的使用以及如何通过上下文访问它们,但是非常有用且最新的教程非常值得一做: How To GraphQL