已知限制
以下是使用 Prisma Pulse 时已知限制的描述。如果您知道有任何遗漏的限制,请在我们的社区 Discord 的 #help-and-questions
频道中告诉我们。
入门计划需要超级用户角色
我们的 入门计划 需要具有超级用户访问权限的数据库角色。
Prisma Pulse 是服务器端的
无法直接在客户端代码中启动 Prisma Pulse 流。要实时接收事件,Prisma Client 需要在长期运行的服务器上打开流。
要将事件传播到前端,可以使用像 socket.io 这样的 WebSocket 库。
仅限于 Postgres 12 或更高版本
Prisma Pulse 目前支持 Postgres 12 或更高版本。它应该适用于大多数公开 Postgres 原生逻辑复制功能的 Postgres 提供商。
使用自定义发布槽的订阅类型限制
控制台中的入职流程使您能够提供 自定义发布槽。如果该自定义发布槽只包含数据库表的一个子集,则使用 Pulse 扩展生成的 Prisma Client 实例将继续允许对所有基于 Prisma Schema 定义的完整模型进行流。
例如,如果您的模式中有两个模型,User
和 Post
模型。并且您选择创建发布以专门监视 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 仪表板的.
无法为现有支持 Pulse 的环境启用静态 IP
目前,无法为现有支持 Pulse 的环境启用静态 IP。要使用静态 IP,您必须在为新环境启用 Pulse 时选择使用静态 IP。作为解决方法,在您的项目中创建一个新的环境,该环境与您当前支持 Pulse 的环境具有相同的数据库连接字符串,以便为 Pulse 获得静态 IP 支持。