Для PostgreSQL используется TRUNCATE
:
with contextlib.closing(engine.connect()) as con:
trans = con.begin()
con.execute('TRUNCATE {} RESTART IDENTITY;'.format(
','.join(table.name
for table in reversed(Base.metadata.sorted_tables))))
trans.commit()
Примечание: RESTART IDENTITY;
гарантирует, что все последовательности также сбрасываются. Однако это медленнее, чем рецепт DELETE
от @ aknuds1 на 50%.
Другой рецепт - сначала убрать все таблицы, а затем воссоздать их. Это на 50% медленнее:
Base.metadata.drop_all(bind=engine)
Base.metadata.create_all(bind=engine)