diff --git a/app/database/connection.py b/app/database/connection.py index a962503..2a088d5 100644 --- a/app/database/connection.py +++ b/app/database/connection.py @@ -2,6 +2,7 @@ 数据库连接池模块 """ from pathlib import Path +from urllib.parse import quote_plus from databases import Database from sqlalchemy import create_engine, MetaData from sqlalchemy.ext.declarative import declarative_base @@ -20,9 +21,9 @@ if settings.DATABASE_TYPE == "sqlite": DATABASE_URL = f"sqlite:///{db_path}" elif settings.DATABASE_TYPE == "mysql": if settings.MYSQL_SOCKET: - DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@/{settings.MYSQL_DATABASE}?unix_socket={settings.MYSQL_SOCKET}" + DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{quote_plus(settings.MYSQL_PASSWORD)}@/{settings.MYSQL_DATABASE}?unix_socket={settings.MYSQL_SOCKET}" else: - DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DATABASE}" + DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{quote_plus(settings.MYSQL_PASSWORD)}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DATABASE}" else: raise ValueError("Unsupported database type. Please set DATABASE_TYPE to 'sqlite' or 'mysql'.")