https://dev.kronoz.win/r/marzneshin.git
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()