跳过至主要内容

一般说明

注意

Prisma Pulse 需要一个具有启用逻辑复制的 PostgreSQL(**版本 12+**)数据库。要配置 Prisma Pulse 的特定数据库提供商,请访问这里

数据库复制是创建数据库副本并在各种内部部署或云目标中存储它们的流程。Prisma Pulse 使用逻辑复制来监控您的数据库中的更改。

启用逻辑复制

必需设置

您可以通过在数据库中将wal_level设置为logical来启用逻辑复制。

ALTER SYSTEM SET wal_level = logical;

更改此设置后,您需要重新启动数据库。

注意:某些提供商可能不允许直接访问此设置。如果您无法通过上面的 SQL 命令更改此设置,请参阅特定于提供商的指南以获取更多帮助。

可选设置

wal_keep_size

设置wal_keep_size会增加您 PostgreSQL 数据库上的预写式日志的内存使用量。

我们建议您为wal_keep_size设置一个适合您的数据库存储容量的值。这将确保您的数据库和 Prisma Pulse 顺利运行。

ALTER SYSTEM SET wal_keep_size = 2048;

max_replication_slots

Prisma Pulse 只需要一个可用的复制槽位。如果您正在使用其他复制,则可以设置max_replication_slots

ALTER SYSTEM SET max_replication_slots = 20;

REPLICA IDENTITY

对于更新和删除事件,您可以选择在事件中包含在操作执行之前记录的值

  • 对于update:将更新记录在更新操作执行之前的值包含在一个名为before的字段中
  • 对于delete:包含已删除记录的值。

如果您启用此功能,您还可以过滤这些字段。

要包含此数据,您必须在要获取字段值的表上将REPLICA IDENTITY设置为FULL

例如,运行以下 SQL 命令将在名为User的表上将REPLICA IDENTITY设置为FULL

ALTER TABLE public."User" REPLICA IDENTITY FULL;

管理 Pulse 监控的表

默认情况下,Pulse 会监控数据库中所有表的更改。如果您想为特定模型启用复制,或者如果您使用的是限制 Prisma Pulse 超级用户访问权限的数据库提供商,则可以配置您自己的发布槽位。发布槽位是主数据库中的保留空间,它将数据发布到副本。它允许数据库通过从特定表或操作发布数据来跟踪更改。如果您想配置您自己的发布槽位并启用 Pulse,您需要选择我们的付费计划之一。

创建发布槽位

您可以根据 PostgreSQL 数据库的版本以下列方式创建发布项。

所有模型的发布项。

CREATE PUBLICATION all_models FOR ALL TABLES;
特定字段的发布项。

例如,创建一个发布项,该发布项会发布表users的所有更改,但只复制列user_idfirstname

   CREATE PUBLICATION users_filtered FOR TABLE users (user_id, firstname);
特定模型的发布项。

例如,创建一个发布项,该发布项会发布两个表中的所有更改

CREATE PUBLICATION user_and_department_publication FOR TABLE users, departments;
具有其字段上的WHERE子句的模型的发布项。

例如,创建一个发布项,该发布项会发布来自活动departments的所有更改

CREATE PUBLICATION active_departments FOR TABLE departments WHERE (active IS TRUE);
基于 DML 操作的发布项。

例如,创建一个发布项,该发布项只发布一个表中的INSERT操作

CREATE PUBLICATION insert_only FOR TABLE departments
WITH (publish = 'insert');

publish (string)

此参数确定新发布项将发布到订阅者的哪些 DML 操作。该值是操作的逗号分隔列表。允许的操作包括insertupdatedeletetruncate。默认情况下,发布所有操作,因此此选项的默认值为'insert, update, delete, truncate'

您可以在这里了解有关 PostgreSQL 的CREATE PUBLICATION、支持的版本以及更多示例的更多信息。

提交您的发布槽位

您可以在中提交发布项名称,然后启用 Prisma Pulse

  1. 要查看您的发布项,请执行

    SELECT * FROM pg_publication_tables;
  2. 导航至Prisma 数据平台以启用 Pulse。

  3. 数据库连接部分中提交数据库连接字符串和区域。

  4. 在您的 Pulse 项目环境配置中,在发布项名称字段中输入发布项名称。要访问此字段,请在数据库复制部分中切换自动设置按钮(在付费计划中可用)。

  5. 切换自动设置后,该按钮将变为高级设置,并且会出现一个名为发布项名称的文本框。

  6. 步骤 2中复制并粘贴发布项名称。

  7. 单击启用 Pulse

删除发布项

如果您独立管理您的复制,并选择为特定环境禁用 Prisma Pulse,则可以参考以下 SQL 查询来删除您的发布项。

  1. 要删除发布项

    DROP PUBLICATION IF EXISTS "my_publication";
  2. 查看您的发布项

    SELECT * FROM pg_publication_tables;

特定于提供商的说明

如果您想查看数据库的特定说明,请选择您的数据库提供商