From c6f74b5801ee97556cc0e7f7c0ecaa2b88ff4ba9 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 7 Jan 2026 10:47:46 +0800 Subject: [PATCH] fix: Fix external database password containing special characters connection failure --- backend/common/core/config.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/common/core/config.py b/backend/common/core/config.py index df7efba0..aa91c304 100644 --- a/backend/common/core/config.py +++ b/backend/common/core/config.py @@ -1,4 +1,5 @@ import secrets +import urllib.parse from typing import Annotated, Any, Literal from pydantic import ( @@ -76,14 +77,15 @@ def all_cors_origins(self) -> list[str]: def SQLALCHEMY_DATABASE_URI(self) -> PostgresDsn | str: if self.SQLBOT_DB_URL: return self.SQLBOT_DB_URL - return MultiHostUrl.build( - scheme="postgresql+psycopg", - username=self.POSTGRES_USER, - password=self.POSTGRES_PASSWORD, - host=self.POSTGRES_SERVER, - port=self.POSTGRES_PORT, - path=self.POSTGRES_DB, - ) + # return MultiHostUrl.build( + # scheme="postgresql+psycopg", + # username=urllib.parse.quote(self.POSTGRES_USER), + # password=urllib.parse.quote(self.POSTGRES_PASSWORD), + # host=self.POSTGRES_SERVER, + # port=self.POSTGRES_PORT, + # path=self.POSTGRES_DB, + # ) + return f"postgresql+psycopg://{urllib.parse.quote(self.POSTGRES_USER)}:{urllib.parse.quote(self.POSTGRES_PASSWORD)}@{self.POSTGRES_SERVER}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}" MCP_IMAGE_PATH: str = '/opt/sqlbot/images' EXCEL_PATH: str = '/opt/sqlbot/data/excel'