From a183b2affbee2438cc11dc2906d3857419f9d73c Mon Sep 17 00:00:00 2001 From: 8bitpd <51897400+lpdink@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:00:26 +0800 Subject: [PATCH] fix: rollback when AnalyticDB create zhparser failed (#24260) Co-authored-by: xiaozeyu --- .../rag/datasource/vdb/analyticdb/analyticdb_vector_sql.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/core/rag/datasource/vdb/analyticdb/analyticdb_vector_sql.py b/api/core/rag/datasource/vdb/analyticdb/analyticdb_vector_sql.py index 2df17181a..bb61b71bb 100644 --- a/api/core/rag/datasource/vdb/analyticdb/analyticdb_vector_sql.py +++ b/api/core/rag/datasource/vdb/analyticdb/analyticdb_vector_sql.py @@ -105,9 +105,11 @@ class AnalyticdbVectorBySql: conn.close() self.pool = self._create_connection_pool() with self._get_cursor() as cur: + conn = cur.connection try: cur.execute("CREATE EXTENSION IF NOT EXISTS zhparser;") except Exception as e: + conn.rollback() raise RuntimeError( "Failed to create zhparser extension. Please ensure it is available in your AnalyticDB." ) from e @@ -115,6 +117,7 @@ class AnalyticdbVectorBySql: cur.execute("CREATE TEXT SEARCH CONFIGURATION zh_cn (PARSER = zhparser)") cur.execute("ALTER TEXT SEARCH CONFIGURATION zh_cn ADD MAPPING FOR n,v,a,i,e,l,x WITH simple") except Exception as e: + conn.rollback() if "already exists" not in str(e): raise e cur.execute(