database.py 1.1 KB

123456789101112131415161718192021222324252627
  1. from sqlalchemy import create_engine
  2. from app.config import dataSettings, platformSettings, connectionPool,dataBase
  3. from app.logger import logger
  4. DATABASE_URLS = {
  5. dataBase.DATA_DB: f"mysql+pymysql://{dataSettings.db_user}:{dataSettings.db_password}@{dataSettings.db_host}/{dataSettings.db_name}",
  6. dataBase.PLATFORM_DB: f"mysql+pymysql://{platformSettings.db_user}:{platformSettings.db_password}@{platformSettings.db_host}/{platformSettings.db_name}"
  7. }
  8. databases = {}
  9. for db_name, db_url in DATABASE_URLS.items():
  10. databases[db_name] = create_engine(db_url,
  11. pool_size=connectionPool.POOL_SIZE,
  12. max_overflow=connectionPool.MAX_OVERFLOW,
  13. pool_timeout=connectionPool.POOL_TIMEOUT,
  14. pool_recycle=connectionPool.POOL_RECYCLE)
  15. def get_engine(db_name: str):
  16. database = databases.get(db_name, None)
  17. try:
  18. return database
  19. except Exception as e:
  20. logger.error(f"Database '{db_name}' not found. {str(e)}")
  21. raise