diff --git a/pgsync/sync.py b/pgsync/sync.py index 8c63f61a..88a86ae8 100644 --- a/pgsync/sync.py +++ b/pgsync/sync.py @@ -562,8 +562,9 @@ def _insert_op( node, ) - _filters: list = [] for payload in payloads: + _filters: list = [] + for node_key in foreign_keys[node.name]: for parent_key in foreign_keys[node.parent.name]: if node_key == parent_key: @@ -571,6 +572,10 @@ def _insert_op( {parent_key: payload.data[node_key]} ) + _filters = self._root_primary_key_resolver( + node, payload, _filters + ) + _filters = self._root_foreign_key_resolver( node, payload, foreign_keys, _filters ) @@ -581,8 +586,8 @@ def _insert_op( node, payload, _filters ) - if _filters: - filters[self.tree.root.table].extend(_filters) + if _filters: + filters[self.tree.root.table].extend(_filters) else: # handle case where we insert into a through table