From 5f1679ff94f459e9b45cd4f7427e4c5f61dcc37a Mon Sep 17 00:00:00 2001 From: heshiwen Date: Fri, 25 Apr 2025 15:48:56 +0800 Subject: [PATCH] fix db url parse when password contains '@' Signed-off-by: heshiwen --- src/backend/db.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/db.py b/src/backend/db.py index 1d628c3..46a5224 100644 --- a/src/backend/db.py +++ b/src/backend/db.py @@ -6,6 +6,7 @@ from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker from sqlalchemy.future import select +from urllib.parse import quote_plus as urlquote load_dotenv() @@ -17,7 +18,7 @@ DB_PORT = os.getenv('POSTGRES_PORT', '5432') # SQLAlchemy async database URL -DATABASE_URL = f"postgresql+asyncpg://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}" +DATABASE_URL = f"postgresql+asyncpg://{DB_USER}:{urlquote(DB_PASSWORD)}@{DB_HOST}:{DB_PORT}/{DB_NAME}" # Create async engine engine = create_async_engine(DATABASE_URL, echo=False)