File size: 863 Bytes
57cf043
 
 
 
 
 
 
 
 
 
9390ea2
57cf043
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
from fastapi import Depends
import logging

from typing import Annotated
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session, Session

from common.configuration import Configuration
from components.dbo.models.base import Base
import common.db_schemas

CONFIG_PATH = os.environ.get('CONFIG_PATH', './config_dev.yaml')
config = Configuration(CONFIG_PATH)
logger = logging.getLogger(__name__)

engine = create_engine(config.common_config.log_sql_path, connect_args={'check_same_thread': False})

session_factory = sessionmaker(autocommit=False, autoflush=False, bind=engine)
SessionLocal = scoped_session(session_factory)

def get_db_session_factory():
    
    db = session_factory()
    try:
        yield db
    finally:
        db.close()

logger.info("Creating tables...")
Base.metadata.create_all(bind=engine)