Flask Sql-alchemy没有丢弃由alembic创建的表

时间:2016-07-06 09:35:12

标签: python flask flask-sqlalchemy alembic flask-migrate

我使用Flask-migrate进行烧瓶应用。运行db upgrade会创建以下表格:

              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

但是当我删除所有表格时:

db = SQLAlchemy(app)
db.drop_all()

我明白了:

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

是否有解除所有表格的解决方案(甚至是alembic_version)?

2 个答案:

答案 0 :(得分:1)

  

我想从空数据库

开始

在这种情况下,在数据库级别(与应用程序级别相反)执行此操作,例如删除SQLite的.db文件,PostgreSQL的DROP DATABASE等。

如果您经常这样做,可以让脚本删除,然后重新创建数据库(并在其上运行迁移)。

因为在应用程序级别,数据库管理软件会希望保留一些信息来跟踪架构版本。

答案 1 :(得分:0)

我找到了答案 - 不是删除数据库,而是通过以下方式将其降级为基本迁移:

db downgrade base