Files
HangmanLab.Backend/db/__init__.py
2024-12-03 14:35:25 +00:00

24 lines
635 B
Python

#db/__init__.py
from contextlib import contextmanager
from db.models import Base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import env_provider
from env_provider import DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
engine = create_engine(f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}")
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
@contextmanager
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
def create_all():
with engine.begin() as conn:
Base.metadata.create_all(bind=conn)