Pass in create_engine kwargs through database constructor

This commit is contained in:
Stefan Wehrmeyer 2014-01-31 22:03:34 +01:00
parent 6deba5937e
commit 3fd1c1185a

View File

@ -27,10 +27,14 @@ log = logging.getLogger(__name__)
class Database(object):
def __init__(self, url, schema=None, reflectMetadata=True):
kw = {}
def __init__(self, url, schema=None, reflectMetadata=True,
engine_kwargs=None):
if engine_kwargs is None:
engine_kwargs = {}
if url.startswith('postgres'):
kw['poolclass'] = NullPool
engine_kwargs.setdefault('poolclass', NullPool)
self.lock = threading.RLock()
self.local = threading.local()
if '?' in url:
@ -44,7 +48,7 @@ class Database(object):
if len(query):
url = url + '?' + urlencode(query, doseq=True)
self.schema = schema
self.engine = create_engine(url, **kw)
self.engine = create_engine(url, **engine_kwargs)
self.url = url
self.metadata = MetaData(schema=schema)
self.metadata.bind = self.engine