Support table dropping and sqlalchemy Connection objects
This commit is contained in:
parent
36507c35f8
commit
b62ddfb7ef
@ -1,6 +1,6 @@
|
||||
|
||||
from sqlaload.schema import connect
|
||||
from sqlaload.schema import create_table, load_table, get_table
|
||||
from sqlaload.schema import create_table, load_table, get_table, drop_table
|
||||
from sqlaload.schema import create_column
|
||||
from sqlaload.write import add_row, update_row
|
||||
from sqlaload.write import upsert, update
|
||||
|
||||
@ -40,6 +40,10 @@ def load_table(engine, table_name):
|
||||
return table
|
||||
|
||||
def get_table(engine, table_name):
|
||||
# Accept Connection objects here
|
||||
if hasattr(engine, 'engine'):
|
||||
engine = engine.engine
|
||||
|
||||
if table_name in TABLES[engine]:
|
||||
return TABLES[engine][table_name]
|
||||
if engine.has_table(table_name):
|
||||
@ -47,6 +51,19 @@ def get_table(engine, table_name):
|
||||
else:
|
||||
return create_table(engine, table_name)
|
||||
|
||||
def drop_table(engine, table_name):
|
||||
# Accept Connection objects here
|
||||
if hasattr(engine, 'engine'):
|
||||
engine = engine.engine
|
||||
if table_name in TABLES[engine]:
|
||||
table = TABLES[engine][table_name]
|
||||
elif engine.has_table(table_name):
|
||||
table = Table(table_name, engine._metadata)
|
||||
else:
|
||||
return
|
||||
table.drop(engine)
|
||||
TABLES[engine].pop(table_name, None)
|
||||
|
||||
def _guess_type(sample):
|
||||
if isinstance(sample, bool):
|
||||
return Boolean
|
||||
|
||||
Loading…
Reference in New Issue
Block a user