database.py 768 B

123456789101112131415161718192021222324252627
  1. import os
  2. from sqlalchemy import create_engine
  3. from sqlalchemy.ext.declarative import declarative_base
  4. from sqlalchemy.orm import sessionmaker
  5. from dotenv import load_dotenv
  6. from os.path import join, dirname
  7. ## ENV LOAD
  8. dotenv_path = dirname(__file__).replace("./sql",'env/database.env')
  9. load_dotenv(dotenv_path)
  10. SQLALCHEMY_DATABASE_URL = os.environ.get("SQLALCHEMY_DATABASE_URL")
  11. engine = create_engine(SQLALCHEMY_DATABASE_URL)
  12. SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
  13. Base = declarative_base()
  14. # Dependency
  15. def get_db_session():
  16. db = SessionLocal()
  17. try:
  18. yield db
  19. except:
  20. db.rollback()
  21. raise
  22. finally:
  23. db.close()
  24. ### define database session, deal with database setup and connection