我已经安装了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()
重新创建数据库,但会出现同样的错误。
答案 0 :(得分:0)
如果您可以生成全新的数据库,那么这是解决此问题的最简单方法。
首先,您需要删除数据库中的所有表,否则会破坏数据库并创建一个全新的数据库。运行db.drop_all()
是不够的,因为这只会删除与模型关联的表,它不会删除Alembic表。
如果您拥有一个完全空的数据库,您应该能够运行./manage.py db upgrade
以将其恢复到最新的迁移。
如果您收到错误,则表示您的迁移历史记录已损坏,可能是因为您删除了正在使用的迁移脚本。在这种情况下,您可以清除数据库,清除迁移目录,然后重新使用./manage.py db init
,然后./manage.py db migrate
重新创建与模型当前状态匹配的初始迁移。 / p>