Eine einfache Funktion gebaut SQLEs schlägt immer fehl, wenn Tabelle zu löschen oder fallen wird mit sqlalchemy auf postgresql
from sqlalchemy.engine.url import URL
POOL_RECYCLE = 7200
POOL_SIZE = 10
MAX_OVERFLOW = 20
POOL_TIMEOUT = 30
class DatabaseConnect(object):
def __init__(self, dict_db):
self.__config = dict_db
self.Engine = create_engine(URL(**self.__config),
pool_size=POOL_SIZE,
max_overflow=MAX_OVERFLOW,
pool_timeout=POOL_TIMEOUT,
pool_recycle=POOL_RECYCLE)
def db_connect(self):
return self.Engine.connect()
One dict verwendet zum Ausführen Informationen enthalten Datenbank zu verbinden.
DICT_DB_DW_PG_BI = {
'drivername': 'postgres',
'host': 'xxx',
'port': '5432',
'database': 'alpha',
'username': 'xx',
'password': 'xxx'}
Wenn ich die SQL ausführen, verwende ich die Funktion als erklären:
for i_sql in sql_input.split(';'):
engine = self.db_dw_pg_bi.Engine
engine.execute(sqlalchemy.text(i_sql))
Wenn ich die oben beschriebene Methode verwenden, um die SQL wie unten ausgeführt, wird kein Fehler angezeigt, aber wenn ich das Kontroll Datenbank, habe ich keine Änderungen in der Datenbank gefunden.
delete from test.lxy_norm_user;
drop table if exists test.lxy_norm_user;