diff --git a/sijapi/classes.py b/sijapi/classes.py index 1bf0d43..4d354ac 100644 --- a/sijapi/classes.py +++ b/sijapi/classes.py @@ -653,6 +653,7 @@ class APIConfig(BaseModel): debug(f"Number of changes for {table_name}: {len(changes)}") if changes: + debug(f"Sample change for {table_name}: {changes[0]}") changes_count = await self.apply_batch_changes(dest_conn, table_name, changes, has_primary_key) total_changes += changes_count @@ -720,12 +721,16 @@ class APIConfig(BaseModel): # Prepare the statement stmt = await conn.prepare(insert_query) - # Convert list of dicts to list of tuples - values_list = [tuple(change[col] for col in columns) for change in changes] - - # Use executemany for batch insert - result = await stmt.executemany(values_list) - affected_rows = len(values_list) # Assume all rows were affected + affected_rows = 0 + for change in changes: + try: + values = [change[col] for col in columns] + result = await stmt.fetchval(*values) + affected_rows += 1 + except Exception as e: + err(f"Error inserting row into {table_name}: {str(e)}") + err(f"Row data: {change}") + # Continue with the next row return affected_rows @@ -736,6 +741,7 @@ class APIConfig(BaseModel): + async def sync_spatial_ref_sys(self, source_conn, dest_conn): try: # Get all entries from the source