PostgreSQL 11 中的逻辑复制和声明式分区

Ham*_*ava 5 postgresql replication database-partitioning postgresql-11 logical-replication

我有一个transactions有 2 亿行的普通表。

我决定使用逻辑复制将此表转换为声明式分区。

我在 node1 上创建了一个出版物,如下所示:

CREATE PUBLICATION transactions_pub FOR TABLE transactions;
Run Code Online (Sandbox Code Playgroud)

当我尝试在 node2 上创建订阅时,如下所示:

CREATE SUBSCRIPTION transactions_sub CONNECTION 'host=x.x.x.x port=5432 password=123456 user=replicator dbname=mydbname' PUBLICATION transactions_pub;
Run Code Online (Sandbox Code Playgroud)

返回此错误:

ERROR:  logical replication target relation "public.transactions" is not a table
Run Code Online (Sandbox Code Playgroud)

是否可以使用逻辑复制将常规表复制到声明式分区表?

ami*_*lan 3

不可以,逻辑复制无法从声明性分区表复制复制到声明性分区表。