7

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

例如:

昨天我按照教程设置了基本的 Prisma 和 GraphQL 服务器。这一切都运作良好。我的 datamodel.graphql 中只有一个类型。

今天早上我醒来并开始研究另一种类型,并将其添加到我的 datamodel.graphql 中。Docker 正在运行,我使用解析器更新 index.js 以支持新模型及其查询/突变。但是,在使用运行系统时,node ./index.js我收到一条错误消息,说它不知道新模型。我怀疑 Prisma 架构尚未刷新/更新,所以我运行graphql get-schema --project prisma但它告诉我没有任何改变。

显然我错过了一些东西。我没有以它想要的方式与 Prisma 合作。谁能告诉我事情的顺利进行必须发生的事件顺序?

该教程非常适合让您启动和运行,但我觉得它并不能很好地向开发人员介绍在日常连续开发周期中使用 Prisma 的流程。

任何信息/见解/链接都会非常有用。

非常感谢,

一个

更新

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

TL;博士:

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

4

3 回答 3

7

你错过了这prisma deploy一步。

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

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

在此处输入图像描述

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

于 2018-07-31T10:54:39.880 回答
0

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

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

您还可以在文件中输入一个部署后挂钩,然后在您每次运行时prisma.yml自动运行您的命令。让您记住少了一步。prisma generateprisma 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

于 2019-01-28T12:25:15.780 回答
0

不要忘记使用prisma deploy.

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

于 2019-01-02T18:52:24.433 回答