标签: prisma

Prisma:如何找到与 id 列表匹配的所有元素?

我将 Prisma 与 NextJs 一起使用。

在我的 API 中,我向后端发送与数据库中对象 ID 相对应的数字列表。

举个例子,如果我收到 list [1, 2, 12],我想返回 id 为 1、2 或 12 的对象

这是更复杂的查询的一部分(排序/计数/...),但我在第一步阻止的是获取元素列表

到目前为止我有这个:

import { PrismaClient, Prisma } from '@prisma/client'

const prisma = new PrismaClient()


export default async function handler(req, res) {
    if (req.method !== 'POST') {
        res.status(400).send({ message: 'Only POST requests allowed for this route' })
    } else {
        const { signes_id } = req.query
        const signes_array = signes_id.split(",").map(function(item) {
            return parseInt(item)
        })
        console.log(signes_array)
        const ret = await …
Run Code Online (Sandbox Code Playgroud)

typescript next.js prisma

43
推荐指数
1
解决办法
7万
查看次数

在 prisma 客户端上获取完整类型

当我使用 prismagenerate 生成 prisma 客户端时,我得到了一个包含数据库中所有类型的 index.d.ts 。但问题是所有类型都是“单一”的并且没有任何关系。当我查询类似的东西时

prisma.users.findMany({
            [... ]
            include: {
                cars: {
                  [...]
                }}});
Run Code Online (Sandbox Code Playgroud)

prisma 使用正确的类型动态输入响应

users & {
        cars: cars & {
           [...]
        };
    }
Run Code Online (Sandbox Code Playgroud)

所以一切正常,我有自动完成功能,除非我想将此变量传递给另一个方法,我想输入参数,所以我必须创建自己的类型用作方法参数。

type prismaUsers = users & {
        cars?: cars & {
           [...]
        };
    }
Run Code Online (Sandbox Code Playgroud)

但我问是否有一种方法可以从 prisma 获取“完整”类型,以避免我像在用户示例中那样创建带有可选子元素的所有“完整”类型。或者也许我做错了,还有其他方法可以做?

prisma

36
推荐指数
5
解决办法
4万
查看次数

prisma - 运行 graphql 查询时获取环境变量未找到错误消息

当我运行 GraphQL 查询时,我从 prisma 收到此错误消息。

Environment variable not found: DATABASE_URL.\n  -->  schema.prisma:6\n   | \n 5 |   provider = \"postgresql\"\n 6 |   url      = env(\"DATABASE_URL\")\n   | \n\nValidation Error Count: 1",
Run Code Online (Sandbox Code Playgroud)

起初,我的任何项目文件夹中都没有 .env 文件,然后我使用数据库 URL 的链接添加了它,但仍然无法正常工作。这是文件夹结构:

文件夹结构:在根目录中,有node_modules、prisma和src文件夹、.env、.gitignore和package.json文件。 在 prisma 内部,有一个 migrations 文件夹和一个 schema.prisma 文件。

这就是我的.env文件中的内容 -

DATABASE_URL="postgres://postgres:mypassword@db.pqtgawtgpfhpqxpgidrn.supabase.co:5432/postgres"
Run Code Online (Sandbox Code Playgroud)

prisma prisma-graphql

34
推荐指数
3
解决办法
6万
查看次数

如何在 prisma 客户端中获取枚举?

我可以在客户端获取模型的枚举值列表,例如选择选项吗?

示例枚举

enum user_type {
    superadmin
    admin
    user
}
Run Code Online (Sandbox Code Playgroud)

我希望将其作为客户端的选择选项。我怎样才能将它们作为 JSON 数据获取?

postgresql node.js prisma

32
推荐指数
1
解决办法
5万
查看次数

当我想使用 Prisma.schema 中添加的模型时,“属性不存在”

我正在使用 NextJS 框架和 Prisma 开发 ReactJS 项目来管理数据库的连接和查询。

在我的本地项目中,找到了支持模型,当我在 API 中使用它并构建我的项目时,一切正常。

但是,当我将项目推送到生产服务器(Plesk)时,构建会向我显示此打字稿错误,因为它找不到支持模型:

./src/pages/api/support/index.ts:27:26
Type error: Property 'support' does not exist on type 'PrismaClient<PrismaClientOptions, never, RejectOnNotFound | RejectPerOperation | undefined>'.
Run Code Online (Sandbox Code Playgroud)

该路径./src/pages/api/support/index.ts是我要使用支持模型的地方

我的prisma.schema

datasource db {
  provider = "mysql"
  url      = env("DATABASE_CONNECTION")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id              Int       @id @unique @default(autoincrement())
  gender          String?
  firstName       String
  lastName        String
  email           String    @unique
  phone           String
  birthday        DateTime?
  income          Float? …
Run Code Online (Sandbox Code Playgroud)

next.js prisma prisma-graphql prisma2

30
推荐指数
2
解决办法
3万
查看次数

@prisma/client 尚未初始化。请运行“prismagenerate”并尝试再次导入

我正在使用 prisma、postgres、docker、kubernets。

\n

npx prisma 迁移开发工作正常。

\n

npx prisma 生成产生以下输出:

\n
\xe2\x9c\x94 Generated Prisma Client (2.23.0) to ./node_modules/@prisma/client in 68ms\nYou can now start using Prisma Client in your code. Reference: https://pris.ly/d/client\n\nimport { PrismaClient } from '@prisma/client'\nconst prisma = new PrismaClient()\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我尝试在我的路线文件中使用时产生错误:

\n

新路由.ts

\n
import { PrismaClient } from '@prisma/client';\n\nconst prisma = new PrismaClient();\n
Run Code Online (Sandbox Code Playgroud)\n

我的泊坞窗文件:

\n
FROM node:alpine\n\nWORKDIR /app\nCOPY package.json .\nRUN npm install --only=prod\nCOPY . .\n\nCMD ["npm", "start"]\n
Run Code Online (Sandbox Code Playgroud)\n

node.js docker kubernetes prisma

29
推荐指数
4
解决办法
6万
查看次数

prisma db push 和 prisma migrate dev 之间的区别

prisma db push和 和有什么不一样prisma migrate dev?我什么时候应该使用其中一种而不是另一种。文档说 prisma db Push 仅与模式原型有关,我不明白这是什么意思。

prisma

29
推荐指数
1
解决办法
3万
查看次数

M1相关!- Prisma:无法到达“数据库”处的数据库服务器:“5432”

自从我迁移到新的 Apple Silicon 架构后,我使用 nextjs 和 postgres 进行的 docker 设置就不再工作了。我使用prisma的nextjs服务器无法找到docker内的数据库。

prisma 客户端无法通过端口 5432 访问 postgres 数据库。

无法访问数据库服务器test-postgres5432

迁移也不起作用并返回上述相同的错误。

docker-compose run --publish 5555:5555 next npx prisma migrate dev
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

postgres:
    container_name: 'test-postgres'
    restart: unless-stopped
    image: 'postgres:13'
    ports:
      - '15432:5432'
    volumes:
      - 'pgdata:/var/lib/postgresql/data/'
    environment:
      POSTGRES_PASSWORD: postgres
Run Code Online (Sandbox Code Playgroud)

.env

DATABASE_URL="postgres://postgres:postgres@localhost:15432/postgres"
Run Code Online (Sandbox Code Playgroud)

我还将arm二进制目标添加到schema.prisma schema.prisma


generator client {
  provider        = "prisma-client-js"
  binaryTargets   = ["native", "debian-openssl-1.1.x", "linux-arm-openssl-1.1.x", "linux-musl"]
  previewFeatures = ["orderByRelation", "selectRelationCount"]
}
Run Code Online (Sandbox Code Playgroud)

postgres 容器实际上正在运行,我可以通过 Docker 桌面仪表板看到它。我在 postgres 容器内注意到的一件事是这个错误:

2021-07-21 12:52:58.927 UTC [76] ERROR:  relation …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js docker prisma apple-m1

27
推荐指数
2
解决办法
3万
查看次数

如何在 prisma ORM 中更新插入多个字段

如何使用一个查询在 prisma ORM 中更新插入多个字段?

我不想一一使用 upsert 字段。我可以通过一个查询更新插入所有这些内容吗?

javascript sql node.js prisma prisma2

25
推荐指数
2
解决办法
2万
查看次数

添加新字段后 Prisma 架构无法正确更新

正如标题所述,我在 Next JS 应用程序中使用 Prisma 2。我有一个非常简单的架构:

  model User {
  id             Int       @id @default(autoincrement())
  firstName      String
  middleName     String?
  firstLastname  String
  secondLastname String?
  email          String
  role           String
  group          Group?    @relation(fields: [groupId], references: [id])
  groupId        Int?
  activity       Activity? @relation(fields: [activityId], references: [id])
  activityId     Int?
  createdOn      DateTime  @default(now())
  updatedOn      DateTime  @default(now())
}

model JobTitle {
  id        Int      @id @default(autoincrement())
  name      String
  createdOn DateTime @default(now())
  updatedOn DateTime @default(now())
}

model Group {
  id        Int      @id @default(autoincrement())
  name      String
  users     User[]
  createdOn DateTime @default(now())
  updatedOn DateTime …
Run Code Online (Sandbox Code Playgroud)

heroku-postgres reactjs next.js prisma prisma2

23
推荐指数
2
解决办法
3万
查看次数