数据库

使用逻辑复制将数据复制到另一个 Postgres 数据库


对于本示例,您需要

  • 一个 Supabase 项目
  • 一个 Postgres 数据库(运行 v10 或更高版本)

您将在这两个数据库上运行命令,以将更改从 Supabase 数据库发布到外部数据库。

  1. Supabase 数据库上创建一个 publication
1
CREATE PUBLICATION example_pub;
  1. 同样在 Supabase 数据库上,创建一个 replication slot
1
select pg_create_logical_replication_slot('example_slot', 'pgoutput');
  1. 现在连接到您的 外部数据库并订阅 publication
1
CREATE SUBSCRIPTION example_sub
2
CONNECTION 'host=db.oaguxblfdassqxvvwtfe.supabase.co user=postgres password=YOUR_PASS dbname=postgres'
3
PUBLICATION example_pub
4
WITH (copy_data = true, create_slot=false, slot_name=example_slot);
  1. 现在我们将返回 Supabase 数据库,并将您想要复制的所有表添加到 publication 中。
1
ALTER PUBLICATION example_pub ADD TABLE example_table;
  1. 使用 pg_stat_replication 检查复制状态
1
select * from pg_stat_replication;