Skip to content

Commit 4cc796c

Browse files
committed
Add option to turn off SQLAlchemy connection pooling in machine configuration
This is useful if connection pooling is already being done externally, e.g. using PgPool-II
1 parent 17f3b8f commit 4cc796c

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/murfey/server/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class MachineConfig(BaseModel):
3838
allow_removal: bool = False
3939
modular_spa: bool = False
4040
processing_enabled: bool = True
41+
sqlalchemy_pooling: bool = True
4142
machine_override: str = ""
4243
processed_extra_directory: str = ""
4344
plugin_packages: Dict[str, Path] = {}

src/murfey/server/murfey_db.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import yaml
66
from cryptography.fernet import Fernet
77
from fastapi import Depends
8+
from sqlalchemy.pool import NullPool
89
from sqlmodel import Session, create_engine
910

1011
from murfey.server.config import MachineConfig, get_machine_config
@@ -23,7 +24,10 @@ def get_murfey_db_session(
2324
machine_config: MachineConfig | None = None,
2425
) -> Session:
2526
_url = url(machine_config)
26-
engine = create_engine(_url)
27+
if machine_config and not machine_config.sqlalchemy_pooling:
28+
engine = create_engine(_url, poolclass=NullPool)
29+
else:
30+
engine = create_engine(_url)
2731
with Session(engine) as session:
2832
try:
2933
yield session

0 commit comments

Comments
 (0)