From f202e2451b1f84dc3b44c040cd39895ba21527f3 Mon Sep 17 00:00:00 2001 From: GnosisAI <31586853+GnosisAI@users.noreply.github.com> Date: Wed, 29 Nov 2023 01:58:17 +0000 Subject: [PATCH 1/2] fix support for deletes in postgres --- meilisync/source/postgres.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/meilisync/source/postgres.py b/meilisync/source/postgres.py index 5d3fff9..31bd571 100644 --- a/meilisync/source/postgres.py +++ b/meilisync/source/postgres.py @@ -81,12 +81,23 @@ def _consumer(self, msg: ReplicationMessage): return columnnames = change.get("columnnames") columnvalues = change.get("columnvalues") - values = dict(zip(columnnames, columnvalues)) + if kind == "update": + values = ( + dict(zip(columnnames, columnvalues)) + if columnvalues + else { + change["oldkeys"]["keynames"][0]: change["oldkeys"][ + "keyvalues" + ][0] + } + ) event_type = EventType.update elif kind == "delete": + values = dict(zip(columnnames, columnvalues)) event_type = EventType.delete elif kind == "insert": + values = dict(zip(columnnames, columnvalues)) event_type = EventType.create else: return From 5c98d02b903f6315abeef3fc11a764cf1b36dd67 Mon Sep 17 00:00:00 2001 From: GnosisAI <31586853+GnosisAI@users.noreply.github.com> Date: Wed, 29 Nov 2023 02:03:22 +0000 Subject: [PATCH 2/2] fix postgres delete sync failed --- meilisync/source/postgres.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meilisync/source/postgres.py b/meilisync/source/postgres.py index 31bd571..2950ac0 100644 --- a/meilisync/source/postgres.py +++ b/meilisync/source/postgres.py @@ -83,7 +83,10 @@ def _consumer(self, msg: ReplicationMessage): columnvalues = change.get("columnvalues") if kind == "update": - values = ( + values = dict(zip(columnnames, columnvalues)) + event_type = EventType.update + elif kind == "delete": + values = ( dict(zip(columnnames, columnvalues)) if columnvalues else { @@ -92,9 +95,6 @@ def _consumer(self, msg: ReplicationMessage): ][0] } ) - event_type = EventType.update - elif kind == "delete": - values = dict(zip(columnnames, columnvalues)) event_type = EventType.delete elif kind == "insert": values = dict(zip(columnnames, columnvalues))