SpotifyStatictics
32 строки · 829.0 Байт
1import sqlalchemy as sa2import sqlalchemy.orm as orm3from sqlalchemy.orm import Session4import sqlalchemy.ext.declarative as dec5
6SqlAlchemyBase = dec.declarative_base()7__factory = None8
9
10def global_init(db_file):11global __factory12
13if __factory:14return15
16if not db_file or not db_file.strip():17raise Exception("Необходимо указать файл базы данных.")18
19conn_str = f'sqlite:///{db_file.strip()}?check_same_thread=False'20print(f"Подключение к базе данных по адресу {conn_str}")21
22engine = sa.create_engine(conn_str, echo=False)23__factory = orm.sessionmaker(bind=engine)24
25from . import __all_models26
27SqlAlchemyBase.metadata.create_all(engine)28
29
30def create_session() -> Session:31global __factory32return __factory()33