【问题标题】:How to remove a row from the alembic_version table in flask app如何从烧瓶应用程序中的 alembic_version 表中删除一行
【发布时间】:2019-06-14 20:05:44
【问题描述】:

在我的测试应用程序中,我使用 SQLite 数据库,我不得不重新安装 flask-migrate

pip uninstall Flask-Migrate

pip install flask-migrate

然后我创建了一个迁移存储库:

flask db init

当我自己迁移时:

flask db migrate -m "users table"

我得到错误:

(venv) C:\Users\User\newtestapp>flask db migrate -m "users table"
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '0730f0aa078f'

如果我理解正确,那么我需要从alembic_version 表中删除旧版本的0730f0aa078f

如何使用 Flask-SQLAlchemy 从 alembic_version 表中删除一行? 如果这不可能,还有什么其他方法可以做到这一点?

谢谢

【问题讨论】:

    标签: python flask


    【解决方案1】:

    alembic_version 表只有一行,用于存储当前版本的数据库架构。由于您要重新开始,最简单的做法就是完全删除 alembic_version 表并让flask db upgrade 为您重新创建它。与往常一样,如果您的数据库中有一些有用的东西,请先备份它。

    【讨论】:

    • 如何彻底删除alembic_version表?在 Flask-SQLAlchemy 中使用哪个命令?
    • 您不应该为此使用 Flask,您应该通过直接连接到数据库实例并删除表来手动执行此操作。您背着 Alembic 重置迁移,因此您需要完成这项工作。 Alembic 帮不了你。如何删除表取决于您使用的数据库。例如,对于 Postgres,命令将是 DROP TABLE alembic_version
    • 如果您发现此答案有帮助,如果您将问题标记为已解决,我们将不胜感激。
    • 谢谢。你的回答帮助了我
    猜你喜欢
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2018-10-25
    相关资源
    最近更新 更多