Merge branch 'master' into 2master
This commit is contained in:
commit
cbbc8a3b87
1 changed files with 30 additions and 34 deletions
|
@ -9,40 +9,6 @@ from sqlalchemy.dialects.sqlite import JSON
|
|||
import threading
|
||||
|
||||
|
||||
class StorageFactory(object):
|
||||
|
||||
def sessionFactory(self):
|
||||
return self.engine.connect
|
||||
|
||||
@staticmethod
|
||||
def getEngine(dbtype, dbname, user, pw, host='localhost', port=5432, **kw):
|
||||
return create_engine('%s:///%s' % (dbtype, dbname), **kw)
|
||||
|
||||
@staticmethod
|
||||
def mark_changed(session):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def commit(conn):
|
||||
conn.commit()
|
||||
|
||||
IdType = Integer
|
||||
JsonType = JSON
|
||||
|
||||
def __init__(self, config):
|
||||
self.engine = self.getEngine(config.dbengine, config.dbname,
|
||||
config.dbuser, config.dbpassword)
|
||||
self.Session = self.sessionFactory()
|
||||
|
||||
def __call__(self, schema=None):
|
||||
return Storage(self, schema=schema)
|
||||
|
||||
|
||||
# you may put something like this in your code:
|
||||
#factory = StorageFactory(config)
|
||||
# and then call at appropriate places:
|
||||
#storage = scopes.storage.common.factory(schema=...)
|
||||
|
||||
class Storage(object):
|
||||
|
||||
def __init__(self, db, schema=None):
|
||||
|
@ -93,6 +59,36 @@ class Storage(object):
|
|||
conn.execute(text(sq))
|
||||
|
||||
|
||||
class StorageFactory(object):
|
||||
|
||||
def sessionFactory(self):
|
||||
return self.engine.connect
|
||||
|
||||
@staticmethod
|
||||
def getEngine(dbtype, dbname, user, pw, host='localhost', port=5432, **kw):
|
||||
return create_engine('%s:///%s' % (dbtype, dbname), **kw)
|
||||
|
||||
@staticmethod
|
||||
def mark_changed(session):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def commit(conn):
|
||||
conn.commit()
|
||||
|
||||
IdType = Integer
|
||||
JsonType = JSON
|
||||
|
||||
def __init__(self, config, storageClass=Storage):
|
||||
self.engine = self.getEngine(config.dbengine, config.dbname,
|
||||
config.dbuser, config.dbpassword)
|
||||
self.Session = self.sessionFactory()
|
||||
self.storageClass = storageClass
|
||||
|
||||
def __call__(self, schema=None):
|
||||
return self.storageClass(self, schema=schema)
|
||||
|
||||
|
||||
# store information about container implementations, identified by a uid prefix.
|
||||
|
||||
registry = {}
|
||||
|
|
Loading…
Add table
Reference in a new issue