ZHIWEI666 commited on
Commit
820f705
·
verified ·
1 Parent(s): 3348f13

Upload 5 files

Browse files
Files changed (2) hide show
  1. Dockerfile +2 -0
  2. database_sql.py +6 -2
Dockerfile CHANGED
@@ -7,6 +7,8 @@ WORKDIR /code
7
  # 安装系统依赖 (psycopg2 需要)
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
  libpq-dev \
 
 
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
  # 先复制依赖文件,利用 Docker 缓存层
 
7
  # 安装系统依赖 (psycopg2 需要)
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
  libpq-dev \
10
+ ca-certificates \
11
+ libssl-dev \
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
  # 先复制依赖文件,利用 Docker 缓存层
database_sql.py CHANGED
@@ -33,14 +33,18 @@ if "sqlite" in SQLALCHEMY_DATABASE_URL:
33
  logger.info(f"数据库引擎初始化完成 (SQLite)")
34
  else:
35
  # PostgreSQL/MySQL:配置连接池参数
 
 
 
36
  engine = create_engine(
37
  SQLALCHEMY_DATABASE_URL,
38
  poolclass=QueuePool,
39
  pool_size=POOL_SIZE, # 核心连接数(支持环境变量配置)
40
  max_overflow=POOL_OVERFLOW, # 超出 pool_size 后可创建的最大连接数(支持环境变量配置)
41
  pool_timeout=30, # 获取连接超时(秒)
42
- pool_recycle=300, # 连接回收时间(5分钟),防止云端数据库SSL连接断开
43
- pool_pre_ping=True # 使用前检测连接有效性
 
44
  )
45
  logger.info(f"数据库引擎初始化完成 (PostgreSQL/MySQL) - 连接池配置: pool_size={POOL_SIZE}, max_overflow={POOL_OVERFLOW}")
46
 
 
33
  logger.info(f"数据库引擎初始化完成 (SQLite)")
34
  else:
35
  # PostgreSQL/MySQL:配置连接池参数
36
+ connect_args = {}
37
+ if "postgresql" in SQLALCHEMY_DATABASE_URL or "postgres" in SQLALCHEMY_DATABASE_URL:
38
+ connect_args["sslmode"] = os.environ.get("DB_SSLMODE", "prefer")
39
  engine = create_engine(
40
  SQLALCHEMY_DATABASE_URL,
41
  poolclass=QueuePool,
42
  pool_size=POOL_SIZE, # 核心连接数(支持环境变量配置)
43
  max_overflow=POOL_OVERFLOW, # 超出 pool_size 后可创建的最大连接数(支持环境变量配置)
44
  pool_timeout=30, # 获取连接超时(秒)
45
+ pool_recycle=1800, # 连接回收时间(30分钟)
46
+ pool_pre_ping=True, # 使用前检测连接有效性
47
+ connect_args=connect_args
48
  )
49
  logger.info(f"数据库引擎初始化完成 (PostgreSQL/MySQL) - 连接池配置: pool_size={POOL_SIZE}, max_overflow={POOL_OVERFLOW}")
50