diff --git a/pokedex/db/load.py b/pokedex/db/load.py index e9d3fd1..74bf2fd 100644 --- a/pokedex/db/load.py +++ b/pokedex/db/load.py @@ -150,8 +150,19 @@ def load(session, tables=[], directory=None, drop_tables=False, verbose=False, s # Drop all tables if requested if drop_tables: + bind = session.get_bind() print_start('Dropping tables') for n, table in enumerate(reversed(table_objs)): + # Drop columns' types if appropriate; needed for enums in + # postgresql + for column in table.c: + try: + drop = column.type.drop + except AttributeError: + pass + else: + drop(bind=bind, checkfirst=True) + table.drop(checkfirst=True) print_status('%s/%s' % (n, len(table_objs))) print_done()