1

我已经安装了 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'

正如无法完成 Flask-Migration中所建议的,可能的原因是我进行了升级,生成了上述修订版“38340accc10”,但随后删除了整个迁移/目录并删除了所有升级脚本。

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

4

1 回答 1

1

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

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

一旦你有一个完全空的数据库,你应该能够运行./manage.py db upgrade将它带回你最近的迁移。

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

于 2016-03-05T16:51:16.767 回答