2016-09-28 63 views
1

我使用的瓶,瓶,SQLAlchemy的和燒瓶遷移來管理我的模型。我只是意識到,在我的最新數據庫狀態,當我創建一個新的遷移文件,python manage.py db migrate -m'test migration,它不會創建一個空的遷移文件。相反,它會嘗試創建和刪除幾個唯一的鍵和外鍵約束。爲什麼Flask Migrate不會創建空的遷移文件?

爲什麼它的行爲像這樣的任何想法?

回答

2

如果您沒有做出改變,從當前遷移模型,但你生成一個非空遷移文件,然後它表明由於某種原因,你的模型成爲了與數據庫同步,並在此內容新的遷移只是不匹配的東西。

如果您說遷移包含刪除某些約束並添加其他約束的代碼,則會讓我認爲約束名稱可能已更改,或者您可能已將SQLAlchemy版本升級到生成約束的新版本名。

+0

嗨@miguel,謝謝您的回覆!嗯,目前我不確定爲什麼我的移民創建了一個非空遷移。 SqlAlchemy版本仍然相同(Flask-SqlAlchemy 2.1)。並且沒有模型改變(與上述限制直接相關)。我接受這個非空的遷移文件,並且我看到後續的遷移是空的。我將檢查這個解決方案在我的案例 – swdev

+0

中是否可以接受您的解決方案可能可行,但一定要測試生成一個全新的數據庫並在整個遷移列表中運行它,確保此非空遷移不會失敗,刮。 – Miguel

+0

只是想讓你知道,我創建了現有的遷移,然後成功創建下一個遷移。雖然我不確定首先是什麼造成了這個錯誤。雖然,數據庫是使用PostgreSQL的備份和更高版本。只是覺得這個過程改變了一些索引名字... – swdev

相關問題