烧瓶如何跟踪哪个版本ID是最新的?

时间:2016-08-01 22:02:10

标签: flask flask-migrate

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

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

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

我想知道两种环境之间的问题,烧瓶如何跟踪当前版本ID的跟踪情况?假设我在本地创建并运行两次迁移,并推送迁移文件夹。当我在生产中运行db upgrade时,Flask如何迁移跟踪这两个修订,并在Production上运行这些修订?

1 个答案:

答案 0 :(得分:1)

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

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

当您运行升级时,它将通过从此表中读取当前修订版来了解从哪里开始升级。

好问题!