MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / drop_tables

Function drop_tables

test/perf/many_table_reflection.py:147–165  ·  view source on GitHub ↗
(engine, meta, schema_name, table_names: list)

Source from the content-addressed store, hash-verified

145
146@log
147def drop_tables(engine, meta, schema_name, table_names: list):
148 tables = list(meta.tables.values())[::-1]
149 for i in range(0, len(tables), 500):
150 meta.drop_all(engine, tables[i : i + 500])
151
152 remaining = sa.inspect(engine).get_table_names(schema=schema_name)
153 remaining = sorted(
154 remaining, key=lambda tn: int(tn.partition("_")[2]), reverse=True
155 )
156 with engine.connect() as conn:
157 for i, tn in enumerate(remaining):
158 if engine.dialect.requires_name_normalize:
159 name = engine.dialect.denormalize_name(tn)
160 else:
161 name = tn
162 conn.execute(_drop_ddl(name, schema_name, engine.dialect.name))
163 if i % 500 == 0:
164 conn.commit()
165 conn.commit()
166
167
168@log

Callers 1

mainFunction · 0.85

Calls 8

_drop_ddlFunction · 0.85
drop_allMethod · 0.80
valuesMethod · 0.45
get_table_namesMethod · 0.45
connectMethod · 0.45
denormalize_nameMethod · 0.45
executeMethod · 0.45
commitMethod · 0.45

Tested by

no test coverage detected