SQLAlchemy and threads - Hero-Development/snippets GitHub Wiki
Welcome to the snippets wiki!
from Queue import Queue
from threading import Thread
class SAConnection( object ):
classes = {}
def __init__( self, db_url, db ):
self.db = db
self.engine = sqlalchemy.create_engine( db_url +'/'+ db, pool_recycle = 14400 )
self.dbase = declarative_base()
self.dbase.metadata.bind = self.engine
self.dbase.metadata.reflect()
self.sm = sqlalchemy.orm.sessionmaker( bind=self.engine, autocommit=False )
self.session = self.sm()
def table( self, name ):
ns = self.db +'.'+ name
if not ns in SAConnection.classes:
statics = {
'__table__': Table( name, self.dbase.metadata, autoload=True )
}
cls = type( ns, ( self.dbase, ), statics )
SAConnection.classes[ ns ] = cls
return SAConnection.classes[ ns ]