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

时间:2016-03-05 03:42:14

标签: python python-3.x flask flask-sqlalchemy flask-migrate

我已经安装了Flask-Migration并初始化了迁移,但是当我运行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'

正如Cannot complete Flask-Migration中所建议的那样,可能的原因是我已经完成了升级,生成了上述版本' 38340accc10',但随后删除了整个迁移/目录并删除了所有升级脚本。

如何删除数据库中的Alembic版本?我尝试使用db.drop_all()db.create_all()重新创建数据库,但会出现同样的错误。

1 个答案:

答案 0 :(得分:0)

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

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

如果您拥有一个完全空的数据库,您应该能够运行./manage.py db upgrade以将其恢复到最新的迁移。

如果您收到错误,则表示您的迁移历史记录已损坏,可能是因为您删除了正在使用的迁移脚本。在这种情况下,您可以清除数据库,清除迁移目录,然后重新使用./manage.py db init,然后./manage.py db migrate重新创建与模型当前状态匹配的初始迁移。 / p>