Python Flask Migrate:alembic.util.CommandError:没有这样的修订

Python Flask Migrate:alembic.util.CommandError:没有这样的修订,python,python-3.x,flask,flask-sqlalchemy,flask-migrate,Python,Python 3.x,Flask,Flask Sqlalchemy,Flask Migrate,我已经安装了Flask迁移并初始化了迁移,但是当我运行python3 manage.py db migrate时,我会收到以下错误 File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/alembic/script.py", line 104, in get_revision raise util.CommandError("No such revision '%s'" % id_)

我已经安装了Flask迁移并初始化了迁移,但是当我运行
python3 manage.py db migrate
时,我会收到以下错误

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/alembic/script.py", line 104, in get_revision
raise util.CommandError("No such revision '%s'" % id_)
alembic.util.CommandError: No such revision '38340accc10'
一个可能的原因是,我进行了升级,生成了上述版本“38340accc10”,但随后删除了整个迁移/目录,并删除了所有升级脚本


如何删除数据库中的Alembic版本?我曾尝试使用
db.drop\u all()
db.create\u all()
重新创建数据库,但出现了相同的错误。

如果可以生成一个全新的数据库,这是解决此问题的最简单方法

首先,您需要删除数据库中的所有表,或者销毁数据库并创建一个全新的数据库。运行
db.drop_all()
是不够的,因为这只会删除与模型关联的表,而不会删除Alembic表

一旦数据库完全空了,您应该能够运行
/manage.py db upgrade
,将其恢复到最新的迁移


如果出现错误,则意味着您的迁移历史被破坏,可能是因为您删除了正在使用的迁移脚本。在这种情况下,您可以删除数据库,删除迁移目录,然后使用
/manage.py db init
重新开始,然后使用
/manage.py db migrate
创建与模型当前状态匹配的初始迁移。

我假设您希望从头开始。清除数据库中可能存在的所有现有数据。如果这是真的,那么应该有一个数据库目录。如果您删除它并通过发出alembic database init命令重新开始,您应该不会有问题。