问题标签 [prisma2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

graphql - 使用 Apollo + GraphQL 将 Prisma 1 升级到 Prisma 2

我从 Prisma 1 升级到 Prisma 2 时遇到问题。文档对我来说相当复杂。我目前有一个小项目使用:

我的 prisma.yml :

我使用了脚本:

而这个graphqlconfig

如何更新棱镜?知道我的前端是基于带有 ApolloClient、graphlq、graphql-tag 的 VueJS

非常感谢你,后端部分对我来说并不简单

这是我的树结构

编辑

谢谢你的回答。不错,@nburk

但是我在第三步遇到了问题:https ://www.prisma.io/docs/guides/upgrade-guides/upgrade-from-prisma-1/upgrading-the-prisma-layer-postgres

(连接网址)

以前我不使用“docker-compose”。我使用 Prisma 在 Heroku 上部署了我的 front + back + DB

使用 Heroku 上托管的数据库(.env 文件)

当我使用 npx prisma introspect 我有这个错误

无法访问 ''localhosh':'5432' 的数据库服务器

请确保您的数据库服务器在 'localhost':'5432' 上运行我认为问题来自 schema.prisma 它需要有一个以 postgresql:// 开头的 url 但使用 Prisma1 我不需要经历那个.

如何转换我的旧数据库 URL(当前托管在 Heroku 上)?

谢谢

编辑 2

我用了

我有一个“数据库为空”的错误,但我的数据库不是空的。这个 UR 来自 Heroku 数据库配置

0 投票
0 回答
124 浏览

postgresql - 如何使用 Graphql 在 prisma 2 中使用 $queryRaw 获取所有内部查询(多合一查询)

我有一个名为“Post”的模型,我想使用 $queryRaw 在一个查询中获取所有查询,以直接与 Postgresql 连接: prisma.$queryRaw('SELECT * FROM "Post"')它可以工作,但不能返回与业务相关的另一个查询(内部查询),如“评论”或“用户”例如:

它不起作用,它不会获取像评论这样的内部查询

如果我使用这个 prisma.$queryRawselect * from "Post" INNER JOIN "COMMENT" ON "Comment"."postId"="Post".id
它可以在 postgresql db 控制台中工作,但不能在 graphql 中工作,

0 投票
0 回答
278 浏览

typescript - Prisma 如何创建对数据模型的多个引用

我在如何建立以下关系时遇到问题:

店铺 -< 产品 >- 类别

一家商店可以有很多产品。一个类别可以有许多产品。我的问题是在类别已经播种后尝试播种商店/产品。

我遇到的问题是如何播种?我尝试过类似下面的代码。我基本上在填充商店时使用该商店的名称并将其应用于地图。该映射会将完整的产品对象推送到数据库。该映射对象已经完成了类别的映射:

当我这样做时,它会抱怨:

我如何克服这个错误?

0 投票
1 回答
1408 浏览

prisma - Prisma - 如何使用多个模型中的字段定义复合唯一约束?

我在 Prisma 中有这种不那么简单的模型关系。用户 --< 注册 >-- 课程,我不知道如何确保课程标题字段在该用户创建的课程中是唯一的。换句话说,我不希望一个用户创建多个具有相同名称的课程。但我希望课程与不同的创作者同名。(只有创作者在注册中具有 TEACHER 角色)

我面临的问题是,我不知道在哪里定义唯一属性以及要包含哪些字段。我想对(课程名称,具有教师角色的成员)进行唯一约束的字段跨不同的模型。

0 投票
0 回答
325 浏览

prisma - Prisma findMany() - 按计数排序 0 计为正无穷大

我正在尝试 findMany() 用户和 orderBy 他们的帖子数。我在文档中确切地找到了如何做到这一点,它可以工作,除了它将有 0 个帖子的用户计为 +infinity。 orderBy: {posts: {count: asc}}

例如,从有 1 个帖子的用户开始按升序排列,直到有很多帖子的用户,但最后一个用户有 0 个帖子。下降时反之。

我使用 postgres 作为提供者,我真的不知道如何用谷歌搜索这个问题,并为这个问题命名。请帮忙。

小测试的降序输出。您可以看到帖子计数按 0 2 1 排序(按升序排列,其输出顺序为 1 2 0):

0 投票
1 回答
536 浏览

prisma - 如何定位 Prisma 中的字段并获取平面值数组而不是对象数组

我刚开始使用 Primsa 2,所以我仍然是个菜鸟,但我想做的只是Array<number>根据从特定字段获得的值创建一个平面字符串数组()。现在,当我定位该字段时,它会给我一个对象数组,如下所示:userIds: [{ issueId: 1, userId: 1 }]

我想要的只是从userId键和数组中获得的值,然后像这样返回userIds: [ 1 ]。在查询完成后,我可以使用一些格式化代码来解决这个问题:

然而,这似乎不是最优化的解决方案。如果这是唯一可行的方法,但我假设 Prisma 具有查询功能,那么我可以仅在查询中执行此操作吗?

作为参考,我的查询目前如下所示:

提前致谢!

0 投票
0 回答
22 浏览

prisma - Prisma 有没有办法在一次调用中执行 createOrDelete ?

我有一个关系表,它基本上将用户映射到一个问题(Jira 问题),我试图找到一种干净的方法来管理和更新这些关系与 PUT 调用。我暂时想出了一个可行的解决方案,但我觉得 Prisma 2 必须有更好的方法。

因此,当我从前端发出 PUT 请求时,它会返回一个用户 ID 数组 const userIds = [ 1 ]

我想要发生的是当我调用这个 PUT 请求时,我可以将用户 ID 数组传递给它,然后如果用户 ID 在该数组中不存在,Prisma 将删除任何现有的数据库条目,如果不存在则userids添加任何新条目已经存在于数据库中。

一个简单的例子是:

  • 在数据库中,我有用户 id12
  • 我的 PUT 请求[2, 3]发送userIds
  • 当我调用 Prisma 时,它会被删除,1因为它不存在于userIds数组中
  • 然后它为用户添加一个新条目,3因为它在userIds数组中并且在数据库中不存在

这似乎是一些非常简单的功能,但我现在可以解决这个问题的唯一方法是删除与问题相关的所有记录(Jira Ticket),然后为userIds数组中存在的所有 ID 重新添加新记录。这不是很高效(超出原则),并且当我的应用程序变得更复杂时可能会导致问题。

这是我现在如何做的代码:

我只是想知道是否有一种方法可以在不需要删除该问题的每条记录的情况下执行相同的功能。理想情况下,它只会删除数组中缺少的记录,只添加尚不存在的记录。

谢谢!

0 投票
1 回答
1462 浏览

orm - Prisma:在显式多对多关系中创建或连接记录

在我的 Prisma Schema 中,我发现很难理解如何在显式多对多关系的情况下创建记录。

我有以下架构。基本上它代表书籍列表。用户可以创建书籍列表。

用户可以创建一个新列表,然后将书籍连同他们自己的笔记一起添加到该列表中。图书模型是纯粹的,包含标准图书信息。

额外的模型是必需的,因为将书添加到列表的用户可以添加他自己的关于该书的注释。

我希望能够执行的查询。

  • 在更新列表时,我应该能够将新书添加到列表中。这应该会创建新书,并且还允许我在BooksInLists模型中添加新记录以及“注释”字段。

  • 在更新列表时,我应该能够将现有书籍添加/连接到列表中。这将允许我在BooksInLists模型中添加一条新记录以及“注释”字段。

0 投票
0 回答
400 浏览

javascript - Prisma:1-N 关系中的过滤和计数

我想为每个 dataProvider 获取running = true有多少个应用程序。

相应地达到这个结果

我试过查询

我想我总是得到{applications: 2}2 to 的结果some,但我只能使用some,everynone。我错了什么?

0 投票
1 回答
991 浏览

orm - 不能在 Prisma 中的一个模型中建立两个 1:1 的关系。检测到不明确的关系

我试图在 Prisma ORM 的一个模型中建立两个 1:1 关系,但出现以下错误:

验证模型“人”时出错:检测到不明确的关系。字段placeOfBirthplaceOfDeath模型中Person均指Place. 请通过添加为它们提供不同的关系名称@relation(<name>)

我的棱镜架构:

完全不明白。