diff --git a/api/core/rag/datasource/vdb/pgvector/pgvector.py b/api/core/rag/datasource/vdb/pgvector/pgvector.py index 06083af9ca..13c214bfd7 100644 --- a/api/core/rag/datasource/vdb/pgvector/pgvector.py +++ b/api/core/rag/datasource/vdb/pgvector/pgvector.py @@ -1,8 +1,10 @@ import json +import logging import uuid from contextlib import contextmanager from typing import Any +import psycopg2.errors import psycopg2.extras # type: ignore import psycopg2.pool # type: ignore from pydantic import BaseModel, model_validator @@ -147,7 +149,14 @@ class PGVector(BaseVector): if not ids: return with self._get_cursor() as cur: - cur.execute(f"DELETE FROM {self.table_name} WHERE id IN %s", (tuple(ids),)) + try: + cur.execute(f"DELETE FROM {self.table_name} WHERE id IN %s", (tuple(ids),)) + except psycopg2.errors.UndefinedTable: + # table not exists + logging.warning(f"Table {self.table_name} not found, skipping delete operation.") + return + except Exception as e: + raise e def delete_by_metadata_field(self, key: str, value: str) -> None: with self._get_cursor() as cur: