from sqlalchemy.pool import NullPool
from sqlalchemy.interfaces import PoolListener
+
class DBWrapper(object):
"""Database connection wrapper."""
if db.startswith('sqlite://'):
class ForeignKeysListener(PoolListener):
def connect(self, dbapi_con, con_record):
- db_cursor = dbapi_con.execute('pragma foreign_keys=ON')
+ db_cursor = dbapi_con.execute('pragma foreign_keys=ON;')
+ db_cursor = dbapi_con.execute('pragma case_sensitive_like=ON;')
self.engine = create_engine(db, connect_args={'check_same_thread': False}, poolclass=NullPool, listeners=[ForeignKeysListener()])
+ elif db.startswith('mysql://'):
+ db = '%s?charset=utf8&use_unicode=0' %db
+ self.engine = create_engine(db, convert_unicode=True)
else:
self.engine = create_engine(db)
#self.engine.echo = True
self.conn = self.engine.connect()
self.trans = None
+ def close(self):
+ self.conn.close()
+
def execute(self):
self.trans = self.conn.begin()