load dotenv everywhere it's needed; postgresql pool pre ping

This commit is contained in:
2026-05-20 02:21:22 +08:00
parent c68d88b8c1
commit d54aeaa61a
7 changed files with 23 additions and 4 deletions
+5 -1
View File
@@ -18,5 +18,9 @@ elif DATABASE_URL and DATABASE_URL.startswith("postgres+"):
if not DATABASE_URL: if not DATABASE_URL:
raise ValueError("DATABASE_URL environment variable is not set or empty.") raise ValueError("DATABASE_URL environment variable is not set or empty.")
engine = create_engine(DATABASE_URL) engine = create_engine(
DATABASE_URL,
pool_recycle=3600,
pool_pre_ping=True
)
SessionLocal = sessionmaker(bind=engine) SessionLocal = sessionmaker(bind=engine)
+2
View File
@@ -3,6 +3,7 @@ from fastapi import FastAPI, Depends, HTTPException
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from strawberry import Schema from strawberry import Schema
from strawberry.fastapi import GraphQLRouter from strawberry.fastapi import GraphQLRouter
from dotenv import load_dotenv
from auth import router as auth_router, get_user_by_id, get_current_user from auth import router as auth_router, get_user_by_id, get_current_user
@@ -22,6 +23,7 @@ Base.metadata.create_all(bind=engine)
app = FastAPI() app = FastAPI()
# 获取环境变量字符串,并转成列表 # 获取环境变量字符串,并转成列表
load_dotenv()
origins_str = os.getenv("CORS_ORIGINS", "http://localhost:3000") origins_str = os.getenv("CORS_ORIGINS", "http://localhost:3000")
origins = [origin.strip() for origin in origins_str.split(",")] origins = [origin.strip() for origin in origins_str.split(",")]
+3
View File
@@ -1,4 +1,7 @@
import os import os
from dotenv import load_dotenv
load_dotenv()
OSS_BASE_URL = os.getenv("OSS_BASE_URL", "").rstrip("/") OSS_BASE_URL = os.getenv("OSS_BASE_URL", "").rstrip("/")
+3 -2
View File
@@ -1,8 +1,9 @@
import oss2 import oss2
import httpx import httpx
import os import os
import io from dotenv import load_dotenv
from fastapi import HTTPException
load_dotenv()
# 加载配置 # 加载配置
ACCESS_KEY_ID = os.getenv("S3_ACCESS_KEY_ID") ACCESS_KEY_ID = os.getenv("S3_ACCESS_KEY_ID")
+4 -1
View File
@@ -1,11 +1,14 @@
from fastapi import Request, HTTPException from fastapi import Request, HTTPException
import os import os
from dotenv import load_dotenv
from .tokens import decode_token from .tokens import decode_token
load_dotenv()
JWT_SECRET = os.getenv("JWT_SECRET") JWT_SECRET = os.getenv("JWT_SECRET")
JWT_ALGORITHM = os.getenv("JWT_ALGORITHM", "HS256") JWT_ALGORITHM = os.getenv("JWT_ALGORITHM", "HS256")
def get_current_user(request: Request): def get_current_user(request: Request):
token = request.cookies.get("access_token") token = request.cookies.get("access_token")
+3
View File
@@ -7,6 +7,7 @@ import os
import secrets import secrets
import json import json
from urllib.parse import quote from urllib.parse import quote
from dotenv import load_dotenv
from auth.deps import get_current_user from auth.deps import get_current_user
from app.db import SessionLocal from app.db import SessionLocal
@@ -16,6 +17,8 @@ from app.utils.format import get_image_url
router = APIRouter() router = APIRouter()
load_dotenv()
GOOGLE_CLIENT_ID = os.getenv("GOOGLE_CLIENT_ID") GOOGLE_CLIENT_ID = os.getenv("GOOGLE_CLIENT_ID")
GOOGLE_CLIENT_SECRET = os.getenv("GOOGLE_CLIENT_SECRET") GOOGLE_CLIENT_SECRET = os.getenv("GOOGLE_CLIENT_SECRET")
GOOGLE_REDIRECT_URI = os.getenv("GOOGLE_REDIRECT_URI") GOOGLE_REDIRECT_URI = os.getenv("GOOGLE_REDIRECT_URI")
+3
View File
@@ -2,6 +2,9 @@ from datetime import datetime, timedelta, timezone
import os import os
import jwt import jwt
from fastapi import HTTPException, status from fastapi import HTTPException, status
from dotenv import load_dotenv
load_dotenv()
JWT_SECRET = os.getenv("JWT_SECRET") JWT_SECRET = os.getenv("JWT_SECRET")
JWT_ALGORITHM = os.getenv("JWT_ALGORITHM", "HS256") JWT_ALGORITHM = os.getenv("JWT_ALGORITHM", "HS256")