(engine, meta, schema_name, table_names: list)
| 145 | |
| 146 | @log |
| 147 | def 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 |
no test coverage detected