使用sql时如何生成Prisma CUID?

问题描述 投票:0回答:1

我的数据库有一个 Prisma ORM 服务器。我试图在 prisma schema.prisma 文件之外使用

cuid()
函数,但我没有看到任何导入该函数的包,而且我不知道它来自哪里。我想更改表的格式,并且我正在通过制作不同的表(一个包含原始数据,一个包含新格式化的数据)将数据从一种格式迁移到另一种格式。目前,我使用一种使用 prisma 查询的方法来获取所需的数据,但我想尝试使用 SQL 查询在新格式表中获取和创建新行,并测试哪种方法更快。目前我的 prisma 方法相当慢,按照我目前的速度迁移数据大约需要 2.5 个月。

如何在 javascript 文件上使用 prisma 在 schema.prisma 中使用的相同 cuid() 函数? 我的数据库使用 PostgreSQL。

我尝试调用 cuid() 函数,但它显示为未安装。我一直在研究 npm 的 cuid() 包,但我不确定它们是否与 Prisma 使用的包相同。我只会使用该包来创建所有迁移数据的 ID,因为任何新数据都将直接使用 prisma create 函数生成。

我想要类似的东西:

query = `INSERT INTO new_format_table(id, attr1, attr2, attr3)
VALUES(${cuid()}, val1, val2, val3)`
javascript sql postgresql prisma
1个回答
0
投票

根据 Prisma 的文档,cuid 是“由 Prisma ORM 实现的,因此在底层数据库模式中不“可见””。 Prisma 没有告诉他们如何实现它,但按照所有逻辑,cuid2 库 应该是兼容的。

Prisma 的 cuid 存储为

VARCHAR(30)
(您应该能够从底层数据库验证这一点)。

要在代码中生成 cuid ID,请参阅存储库的文档。简而言之,非常简单:

npm install --save @paralleldrive/cuid2

和:

import { createId } from '@paralleldrive/cuid2';
const id = createId();
© www.soinside.com 2019 - 2024. All rights reserved.