SocialNetwork

Форк
0
/
db_session.py 
32 строки · 845.0 Байт
1
import sqlalchemy as sa
2
import sqlalchemy.orm as orm
3
from sqlalchemy.orm import Session
4
import sqlalchemy.ext.declarative as dec
5

6
SqlAlchemyBase = dec.declarative_base()
7

8
__factory = None
9

10
def global_init(db_file):
11
    global __factory
12

13
    if __factory:
14
        return
15

16
    if not db_file or not db_file.strip():
17
        raise Exception("Необходимо указать файл базы данных.")
18

19
    conn_str = f'sqlite:///{db_file.strip()}?check_same_thread=False'
20
    print(f"Подключение к базе данных по адресу {conn_str}")
21

22
    engine = sa.create_engine(conn_str, echo=False)
23
    __factory = orm.sessionmaker(bind=engine, autoflush=False)
24

25
    from . import __all_models
26

27
    SqlAlchemyBase.metadata.create_all(engine)
28

29

30
def create_session() -> Session:
31
    global __factory
32
    return __factory()

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.