engine: use new visitor-callable from latest version

This commit is contained in:
RhodeCode Admin 2023-08-29 10:12:07 +02:00
parent 378a25a911
commit 1222be1283

View file

@ -138,7 +138,7 @@ def alter_column(*p, **k):
delta = ColumnDelta(*p, **k)
visitorcallable = get_engine_visitor(engine, 'schemachanger')
engine._run_visitor(visitorcallable, delta)
_run_visitor(engine, visitorcallable, delta)
return delta
@ -167,6 +167,20 @@ def _to_index(index, table=None, engine=None):
return ret
def _run_visitor(
connectable, visitorcallable, element, connection=None, **kwargs
):
if connection is not None:
visitorcallable(
connection.dialect, connection, **kwargs).traverse_single(element)
else:
conn = connectable.connect()
try:
visitorcallable(
conn.dialect, conn, **kwargs).traverse_single(element)
finally:
conn.close()
# Python3: if we just use:
#
@ -568,7 +582,7 @@ populated with defaults
self.add_to_table(table)
engine = self.table.bind
visitorcallable = get_engine_visitor(engine, 'columngenerator')
engine._run_visitor(visitorcallable, self, connection, **kwargs)
_run_visitor(engine, visitorcallable, self, connection, **kwargs)
# TODO: reuse existing connection
if self.populate_default and self.default is not None:
@ -589,7 +603,7 @@ populated with defaults
self.table = table
engine = self.table.bind
visitorcallable = get_engine_visitor(engine, 'columndropper')
engine._run_visitor(visitorcallable, self, connection, **kwargs)
_run_visitor(engine, visitorcallable, self, connection, **kwargs)
self.remove_from_table(self.table, unset_table=False)
self.table = None
return self