3

I have flask application with Flask-migrate. Running db upgrade creates following tables:

              List of relations
Schema |      Name       | Type  |  Owner   
-------+-----------------+-------+----------
public | alembic_version | table | postgres
public | operations      | table | postgres
public | rule_values     | table | postgres
public | rules           | table | postgres
public | shares          | table | postgres

But when I drop all tables with:

db = SQLAlchemy(app)
db.drop_all()

I got this:

              List of relations
Schema |      Name       | Type  |  Owner   
-------+-----------------+-------+----------
public | alembic_version | table | postgres

Is there solution to drop all tables (even alembic_version)?

2 Answers2

1

I want to start from empty database

In that case do it at the database level (as opposed to the application level), e.g. delete the .db file for SQLite, DROP DATABASE for PostgreSQL etc.

You could make a script to drop and then recreate the DB (and run the migrations on it) if you do this often.

Because on the application level, the DB management software will want to keep some information to track the schema versions.

bakkal
  • 54,350
  • 12
  • 131
  • 107
1

I found answer- it is not to drop database but to downgrade it to base migration via:

db downgrade base