Files
bacchus/apps/backend/app/core/database.py
2025-09-28 19:13:01 +02:00

33 lines
784 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from contextlib import contextmanager
# Datenbank-URL (später besser aus Umgebungsvariable laden)
DATABASE_URL = "postgresql://postgres:bacchus@localhost:5432/bacchus"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
# Dependency für FastAPI-Routen
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
# Optional: Kontextmanager für Skripte außerhalb von FastAPI
@contextmanager
def db_session():
db = SessionLocal()
try:
yield db
db.commit()
except:
db.rollback()
raise
finally:
db.close()