2016-08-01 60 views
1

我一直在錯誤地使用Flask-Migrate。在兩個環境之間,我獨立創建了遷移文件夾,並將遷移文件夾添加到.gitignore文件。燒瓶如何遷移跟蹤哪個版本ID是最新的?

這最近引起了問題,因爲我想直接與Alembic遷移進行交互,並在github中跟蹤這些更改。

這意味着我已經分叉我的生產燒瓶應用程序,現在跟蹤migrations文件夾刪除我的.gitignore文件中的條目。我把這個分支拉到我的本地並銷燬了我的本地分貝。我跑了跟蹤的遷移,它似乎工作。

我想知道兩個環境之間,瓶子如何遷移跟蹤當前版本ID是什麼?假設我在本地創建並運行兩個遷移,並推送遷移文件夾。當我在生產環境中運行數據庫升級時,Flask將如何遷移跟蹤這兩個修訂版本,並在生產環境中運行這些修訂版本?

回答

1

Alembic(Flask-Migrate背後的引擎)將在您的數據庫中插入一個名爲alembic_version的小表。它在此表中寫入數據庫的當前修訂版。下面是此表在我的數據庫之一的轉儲:

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

當您運行升級會知道從那裏通過從該表中讀取當前版本開始升級。

好問題!

+0

謝謝!這是超級有用的。 –