db.py 560 B

1234567891011121314151617181920212223
  1. import os
  2. from dotenv import load_dotenv
  3. from sqlalchemy import create_engine
  4. from sqlalchemy.orm import declarative_base, sessionmaker
  5. load_dotenv()
  6. DATABASE_URL = os.environ.get("DATABASE_URL") or "sqlite:///./dev.db"
  7. engine = create_engine(
  8. DATABASE_URL, connect_args={"check_same_thread": False} if DATABASE_URL.startswith("sqlite") else {}
  9. )
  10. SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
  11. Base = declarative_base()
  12. def get_session():
  13. db = SessionLocal()
  14. try:
  15. yield db
  16. finally:
  17. db.close()