Fixes in sqlalchemy for use normal queries, without pool

This commit is contained in:
Antonio de la Rosa 2018-03-08 22:38:34 +01:00
parent e99ad98362
commit 23d02e3636
2 changed files with 90 additions and 58 deletions

View file

@ -5,8 +5,6 @@ import MySQLdb.cursors
import sqlalchemy.pool as pool import sqlalchemy.pool as pool
import traceback import traceback
mypool=None
class SqlClass: class SqlClass:
def __init__(self, connection): def __init__(self, connection):
@ -24,10 +22,11 @@ class SqlClass:
def connect(self): def connect(self):
global mypool """
if self.conn==None: if self.conn==None:
"""
try: try:
def getconn(): def getconn():
return MySQLdb.connect(self.connection['host'], return MySQLdb.connect(self.connection['host'],
user=self.connection['user'], user=self.connection['user'],
@ -35,12 +34,12 @@ class SqlClass:
db=self.connection['db'], db=self.connection['db'],
charset='utf8mb4', charset='utf8mb4',
cursorclass=MySQLdb.cursors.DictCursor) cursorclass=MySQLdb.cursors.DictCursor)
"""
if mypool==None: if mypool==None:
mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size, recycle=self.pool_recycle, use_threadlocal=False) mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size, recycle=self.pool_recycle, use_threadlocal=False)
"""
self.conn=mypool.connect() self.conn=getconn() #mypool.connect()
self.conn.ping(True) self.conn.ping(True)

View file

@ -14,6 +14,8 @@ engine=None
class SqlClass: class SqlClass:
cursors_connect=None cursors_connect=None
disable_pool=False
pymysql_install=False
def __init__(self, connection): def __init__(self, connection):
@ -28,10 +30,13 @@ class SqlClass:
self.pool_recycle=3600 self.pool_recycle=3600
self.connect() self.connect()
def connect(self): def connect(self):
global engine global engine
if not SqlClass.disable_pool:
if not engine: if not engine:
try: try:
@ -59,6 +64,34 @@ class SqlClass:
self.conn=engine.raw_connection() self.conn=engine.raw_connection()
else:
if self.connection['db_type']=='pymysql':
import pymysql.cursors
if not SqlClass.pymysql_install:
pymysql.install_as_MySQLdb
SqlClass.pymysql_install=True
self.conn=pymysql.connect(self.connection['host'],
user=self.connection['user'],
passwd=self.connection['password'],
db=self.connection['db'],
charset='utf8mb4',
cursorclass=MySQLdb.cursors.DictCursor)
else:
import MySQLdb.cursors
self.conn=MySQLdb.connect(self.connection['host'],
user=self.connection['user'],
passwd=self.connection['password'],
db=self.connection['db'],
charset='utf8mb4',
cursorclass=MySQLdb.cursors.DictCursor)
pass pass
""" """
@ -168,7 +201,7 @@ class SqlClass:
if self.conn: if self.conn:
self.conn.close() self.conn.close()
#self.conn=None self.conn=None
pass pass