数据库 Webhooks

数据库 Webhooks 允许您在数据库发生表事件时将实时数据发送到另一个系统。

你可以绑定三个事件: 插入更新、 和 删除。 所有事件在数据库行更改后触发。

数据库 Webhooks 非常类似于触发器,因为数据库Webhooks使用了pg_net 扩展,这使得它看上去更像是对触发器的便捷地封装。这个扩展是异步的,因此不会阻塞数据库更改以进行长时间运行的网络请求。

该视频演示了每次向profiles表插入一行时,如何在Stripe中创建一个新客户:

note

数据库 Webhooks 以前叫做函数 Hooks。

创建 webhook#

  1. 在控制台新建一个数据库 Webhook
  2. 给新建的 Webhook 命名。
  3. 选择一个你想绑定的数据表。
  4. 选择一个或多个您想要连接到的事件(表的插入、更新、删除) 。

我们目前支持 HTTP webhooks。它们以带有 JSON 载荷的 POST 请求的形式发送。

载荷

载荷是从底层表记录自动生成的:

1type InsertPayload = {
2  type: 'INSERT'
3  table: string
4  schema: string
5  record: TableRecord<T>
6  old_record: null
7}
8type UpdatePayload = {
9  type: 'UPDATE'
10  table: string
11  schema: string
12  record: TableRecord<T>
13  old_record: TableRecord<T>
14}
15type DeletePayload = {
16  type: 'DELETE'
17  table: string
18  schema: string
19  record: null
20  old_record: TableRecord<T>
21}

资源

  • pg_net: 用于 PostgreSQL 的异步网络扩展。