跳到主要内容

已知限制

以下是使用 Prisma Pulse 时的已知限制的描述。如果您知道任何遗漏的限制,请在我们的社区 Discord#help-and-questions 频道上告知我们。

Starter 计划需要超级用户角色

我们的 Starter 计划 需要具有超级用户访问权限的数据库角色。

Prisma Pulse 是服务器端

Prisma Pulse 流不能直接在客户端代码中启动。要在客户端实时接收事件,Prisma Client 需要在长时间运行的服务器上打开一个流。

要将事件传播到前端,您可以使用 WebSocket 库,例如 socket.io

仅限于 Postgres 12 或更高版本

Prisma Pulse 当前支持 Postgres 12 或更高版本。它应该适用于大多数公开 Postgres 原生逻辑复制功能的 Postgres 提供商。

具有自定义发布槽的订阅类型限制

Console 中的入职流程使您能够提供自定义发布槽。如果该自定义发布槽仅包含您的数据库表的一个子集,则使用 Pulse 扩展生成的 Prisma Client 实例将继续允许流式传输到基于您的 Prisma Schema 定义的全部模型。

例如,如果您的 schema 中有两个模型,UserPost 模型。并且您选择创建一个发布来专门监视 User 模型中的更改

CREATE PUBLICATION user_publication FOR TABLE users;

要了解有关创建自定义发布槽的更多信息,请参阅管理您的发布槽

您最终得到的代码将是

const userStream = prisma.user.stream()

但是,尽管缺少发布覆盖范围,但生成的 Prisma Client 允许所有模型的流,例如 Post 模型

const postStream = prisma.post.stream()

我们正在积极努力改进自定义发布的类型生成,作为我们不断改进 Prisma Pulse 的一部分。

数据库事件的大小限制

数据库事件的大小限制取决于您的订阅计划

请注意,数据库事件以 base64 编码进行传输。大小限制适用于事件的编码大小,而不是原始大小。

如果您的事件超出大小限制,它们将被 Prisma Pulse 拒绝,并且不会到达接收器端。您可以在 Pulse 仪表板中查看有多少事件被 Prisma Pulse 拒绝.

无法为现有的启用 Pulse 的环境启用静态 IP

目前,无法为现有的启用 Pulse 的环境启用静态 IP。要使用静态 IP,您必须在新环境中启用 Pulse 时选择使用静态 IP。作为一种解决方法,在您的项目中创建一个新环境,其数据库连接字符串与您当前的启用 Pulse 的环境相同,以便为 Pulse 获得静态 IP 支持。