File size: 1,036 Bytes
686b55b
 
 
 
 
 
 
 
 
 
 
 
 
 
0cb73d2
 
 
686b55b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# app/db/database.py
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from dotenv import load_dotenv
from app.core.config import DATABASE_URL  # 👈 Import from centralized config

# --- Load environment variables ---
load_dotenv()

# --- Create SQLAlchemy engine ---
engine = create_engine(
    DATABASE_URL,
    echo=False,  # set to True if you want SQL logs
    future=True,
    pool_pre_ping=True,
    pool_recycle=300
)

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

# --- Base class for models ---
Base = declarative_base()

# --- Dependency for FastAPI routes ---
def get_db():
    """Dependency to get DB session for each request"""
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()


# --- Optional Debug Print ---
if __name__ == "__main__":
    print("✅ Database connected successfully!")
    print(f"Using DATABASE_URL = {DATABASE_URL}")