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

标签 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() 重新创建数据库,但出现了相同的错误。

最佳答案

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

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

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

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

关于python - Flask-Migrate:alembic.util.CommandError:没有这样的修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809706/

相关文章:

python - 如何改进这个 django View 代码?

python - 使用字符串模板时如何将所有循环元素追加到单行中?

python - 如何从 Selenium Python 中的按钮中抓取数据

python - 透明地将值分配给自定义数字类型

Python将字符串放入字典

flask - 使用flask运行python时的部分输出

python - 如何在 python/pygame 中覆盖图 block (图像)中的区域?

python import 有共同的值(value)观吗?

python-3.x - Python 无法在生产中运行的谷歌云上找到文件

python - 为什么我的 Flask 应用程序中的图像无法正常显示?