flask - Flask 迁移如何跟踪哪个修订 ID 是最新的?

标签 flask flask-migrate

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

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

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

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

最佳答案

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

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

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

好问题!

关于flask - Flask 迁移如何跟踪哪个修订 ID 是最新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38708824/

相关文章:

python - Flask-Migrate 未检测到表格

python - Flask 没有解析 bootstrap glyphicons?

python - 流量交换错误: invalid_grant in flask application

Flask 迁移升级在删除表后不起作用

flask - 使用 Elastic Beanstalk 设置 Flask 数据库迁移

mysql - 使用flask-migrate时出现Flask迁移错误

css - 如何将 css 添加到 flask 应用程序中的 remember_me?

Python Flask - 如何使用 SubmitField 删除对象?

python - uWSGI Workers 写入同一个 JSON 文件

python - Flask 中的数据库迁移 - sqlalchemy