gitscope
← marzneshin / v0.6.1 / app/db/base.py
https://dev.kronoz.win/r/marzneshin.git
app/db/base.py · Python
Blame Raw
 1from sqlalchemy import create_engine
 2from sqlalchemy.orm import declarative_base
 3from sqlalchemy.orm import sessionmaker
 4
 5from app.config.env import (
 6    SQLALCHEMY_DATABASE_URL,
 7    SQLALCHEMY_CONNECTION_POOL_SIZE,
 8    SQLALCHEMY_CONNECTION_MAX_OVERFLOW,
 9)
10
11IS_SQLITE = SQLALCHEMY_DATABASE_URL.startswith("sqlite")
12
13if IS_SQLITE:
14    engine = create_engine(
15        SQLALCHEMY_DATABASE_URL,
16        connect_args={"check_same_thread": False},
17        # echo=True
18    )
19else:
20    engine = create_engine(
21        SQLALCHEMY_DATABASE_URL,
22        pool_size=SQLALCHEMY_CONNECTION_POOL_SIZE,
23        max_overflow=SQLALCHEMY_CONNECTION_MAX_OVERFLOW,
24        pool_recycle=3600,
25        pool_timeout=10,
26    )
27
28SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
29Base = declarative_base()