我一直错误地使用 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/