[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [pytorctl/master] Make memory-only sqlite work.
commit 3de91767e208d1642a8cf89dc1b645f637abaf8e
Author: Mike Perry <mikeperry-git@xxxxxxxxxx>
Date: Tue Nov 15 18:42:18 2011 -0800
Make memory-only sqlite work.
---
SQLSupport.py | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/SQLSupport.py b/SQLSupport.py
index e50dd71..28963fc 100644
--- a/SQLSupport.py
+++ b/SQLSupport.py
@@ -22,6 +22,7 @@ from TorUtil import meta_port, meta_host, control_port, control_host, control_pa
from TorCtl import EVENT_TYPE, EVENT_STATE, TorCtlError
import sqlalchemy
+import sqlalchemy.pool
import sqlalchemy.orm.exc
from sqlalchemy.orm import scoped_session, sessionmaker, eagerload, lazyload, eagerload_all
from sqlalchemy.orm.exc import NoResultFound
@@ -58,7 +59,13 @@ tc_metadata.echo=True
tc_session = scoped_session(sessionmaker(autoflush=True))
def setup_db(db_uri, echo=False, drop=False):
- tc_engine = create_engine(db_uri, echo=echo)
+ # Memory-only sqlite requires some magic options...
+ if db_uri == "sqlite://":
+ tc_engine = create_engine(db_uri, echo=echo,
+ connect_args={'check_same_thread':False},
+ poolclass=sqlalchemy.pool.StaticPool)
+ else:
+ tc_engine = create_engine(db_uri, echo=echo)
tc_metadata.bind = tc_engine
tc_metadata.echo = echo
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits