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
| from sqlalchemy import create_engine, event
| from sqlalchemy.orm import DeclarativeBase, sessionmaker
|
| from app.config import settings
|
| engine = create_engine(
| settings.database_url,
| connect_args={"check_same_thread": False},
| )
|
|
| @event.listens_for(engine, "connect")
| def set_sqlite_pragma(dbapi_conn, _):
| cursor = dbapi_conn.cursor()
| cursor.execute("PRAGMA foreign_keys=ON")
| cursor.close()
|
|
| class Base(DeclarativeBase):
| pass
|
|
| SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
|
| def get_db():
| db = SessionLocal()
| try:
| yield db
| finally:
| db.close()
|
|