【问题标题】:How does flask migrate track which revision ID is current?flask 迁移如何跟踪哪个修订 ID 是当前的?
【发布时间】:2016-08-01 22:02:09
【问题描述】:

我一直在错误地使用 Flask-Migrate。在两个环境之间,我独立创建了迁移文件夹,并将迁移文件夹添加到 .gitignore 文件中。

这最近引起了问题,因为我想直接与 Alembic 迁移进行交互,并在 github 中跟踪这些更改。

这意味着我已经分叉了我的生产烧瓶应用程序,现在跟踪迁移文件夹,从我的 .gitignore 文件中删除了它的条目。我把这个分支拉到我的本地并破坏了我的本地数据库。我运行了跟踪的迁移,它似乎有效。

我想知道在两个环境之间,flask 迁移如何跟踪当前的修订 ID 是什么?假设我在本地创建并运行两个迁移,然后推送迁移文件夹。当我在生产中运行 db upgrade 时,Flask 迁移将如何跟踪这两个修订版,并在生产上运行它们?

【问题讨论】:

    标签: flask flask-migrate


    【解决方案1】:

    Alembic(Flask-Migrate 背后的引擎)将在您的数据库中插入一个名为 alembic_version 的小表。它将数据库的当前版本写入此表中。这是我的一个数据库中该表的转储:

    mydb=# select * from alembic_version;
     version_num
    --------------
     36e0d1f0d589
    (1 row)
    

    当您运行升级时,它会通过读取此表中的当前版本来知道从哪里开始升级。

    好问题!

    【讨论】:

    • 谢谢!这非常有用。
    猜你喜欢
    • 2013-01-18
    • 2012-08-16
    • 2019-07-08
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多