在 pglogical 复制方面需要一些帮助。以下是我的复制设置:
在 Publisher 端,节点创建成功。我对某些表的列应用了行过滤。就像是:
SELECT pglogical.replication_set_add_table(set_name:= 'default', relation := 'table_1', row_filter:= ' country=''USA'' ');
SELECT pglogical.replication_set_add_table(set_name:= 'default', relation := 'table_2', row_filter:= ' country=''USA'' ');
SELECT pglogical.replication_set_add_table(set_name:= 'default', relation := 'table_3', row_filter:= ' country=''USA'' ');
在订阅者端,节点创建成功。当我创建对发布者的订阅时,状态会pglogical.show_subscription_status()
保持initializing
一段时间,然后更改为down
我检查了订阅者数据库日志,我看到以下错误:
LOG: statement: COPY "public"."table_1"("id","column_1","column_2",...........,"some_column") FROM stdin
ERROR: null value in column "some_column" violates not-null constraint
some_column
我检查了 Publisher 并且 in中没有 NULL 值table_1
。table_1
我还检查了出错的特定行,some_column's
值为'f'。some_column
是一列Boolean NOT NULL
。
有关如何解决此问题的任何建议?
谢谢。