From 16d1289a0a2f10170703ee67e292e435c04a9713 Mon Sep 17 00:00:00 2001 From: Elvis_LEE <41870265+ElvisWai@users.noreply.github.com> Date: Mon, 18 Aug 2025 16:29:36 +0800 Subject: [PATCH] fix pg_vector extension requires SUPERUSER, but not available on Huawei Cloud RDS (#24093) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/configs/middleware/vdb/pgvector_config.py | 5 +++++ api/core/rag/datasource/vdb/pgvector/pgvector.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api/configs/middleware/vdb/pgvector_config.py b/api/configs/middleware/vdb/pgvector_config.py index 9f5f7284d..a5d4c2e0d 100644 --- a/api/configs/middleware/vdb/pgvector_config.py +++ b/api/configs/middleware/vdb/pgvector_config.py @@ -9,6 +9,11 @@ class PGVectorConfig(BaseSettings): Configuration settings for PGVector (PostgreSQL with vector extension) """ + PGVECTOR_IS_OWNER: Optional[bool] = Field( + description="Whether the PGVector is the owner of the database", + default=True, + ) + PGVECTOR_HOST: Optional[str] = Field( description="Hostname or IP address of the PostgreSQL server with PGVector extension (e.g., 'localhost')", default=None, diff --git a/api/core/rag/datasource/vdb/pgvector/pgvector.py b/api/core/rag/datasource/vdb/pgvector/pgvector.py index 746773da6..05e9979c3 100644 --- a/api/core/rag/datasource/vdb/pgvector/pgvector.py +++ b/api/core/rag/datasource/vdb/pgvector/pgvector.py @@ -253,7 +253,8 @@ class PGVector(BaseVector): return with self._get_cursor() as cur: - cur.execute("CREATE EXTENSION IF NOT EXISTS vector") + if dify_config.PGVECTOR_IS_OWNER: + cur.execute("CREATE EXTENSION IF NOT EXISTS vector") cur.execute(SQL_CREATE_TABLE.format(table_name=self.table_name, dimension=dimension)) # PG hnsw index only support 2000 dimension or less # ref: https://github.com/pgvector/pgvector?tab=readme-ov-file#indexing