File size: 870 Bytes
74de430
 
 
 
 
 
 
 
ad4d1e4
54e6861
 
74de430
 
 
54e6861
 
 
 
ad4d1e4
74de430
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""
Database Session Management
"""
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from app.config import settings

# Create database engine (Supabase PostgreSQL)
# IMPORTANT: Use connection pooler (port 6543) for better performance
# Format: postgresql://postgres:password@db.xxxxx.supabase.co:6543/postgres
engine = create_engine(
    settings.DATABASE_URL,
    pool_pre_ping=True,
    pool_size=20,  # Increased for better concurrency
    max_overflow=20,  # Allow burst traffic
    pool_recycle=300,  # Recycle connections every 5 minutes
    pool_timeout=30,  # Wait 30s for connection from pool
    echo=settings.DEBUG
)

# Create session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# Base class for ORM models
Base = declarative_base()