数据库

使用逻辑复制将数据同步到另一个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
2
3
4
CREATE SUBSCRIPTION example_subCONNECTION 'host=db.oaguxblfdassqxvvwtfe.supabase.co user=postgres password=YOUR_PASS dbname=postgres'PUBLICATION example_pubWITH (copy_data = true, create_slot=false, slot_name=example_slot);
  1. 将所有需要复制的表添加到 publication 中。
1
ALTER PUBLICATION example_pub ADD TABLE example_table;
  1. 使用 pg_stat_replication 检查复制状态
1
select * from pg_stat_replication;