2016-03-05 43 views
0

我已經安裝了Flask-Migration並初始化遷移,但是當我運行python3 manage.py db migrate時,我會收到以下錯誤。燒瓶遷移:alembic.util.CommandError:沒有這樣的版本

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/alembic/script.py", line 104, in get_revision 
raise util.CommandError("No such revision '%s'" % id_) 
alembic.util.CommandError: No such revision '38340accc10' 

正如Cannot complete Flask-Migration提出了一個可能的原因是,我已經做了這所產生的上述修訂「38340accc10」的升級,但隨後刪除整個遷移/目錄,並刪除了所有升級腳本。

如何刪除數據庫中的Alembic版本?我試圖用db.drop_all()db.create_all()重新創建數據庫,但同樣的錯誤出現。

+0

我假設你想從頭開始。擺脫你的數據庫中可能存在的所有現有數據。如果這是真的,應該有一個數據庫目錄。如果你刪除它,並通過發出alembic數據庫init命令重新開始,你應該沒問題。 – franklin

回答

0

如果您可以生成一個全新的數據庫,這是解決這個問題的最簡單方法。

首先,您需要刪除數據庫中的所有表,否則請銷燬數據庫並製作一個全新的表。運行db.drop_all()是不夠的,因爲這隻會刪除與模型關聯的表,它不會刪除Alembic表。

一旦你有一個完全空的數據庫,你應該能夠運行./manage.py db upgrade使它恢復到你的最新遷移。

如果您遇到錯誤,那意味着您的遷移歷史記錄已損壞,可能是因爲您刪除了正在使用的遷移腳本。在這種情況下,可以清除數據庫,清除遷移目錄,然後從./manage.py db init開始,然後從./manage.py db migrate開始,以創建與模型當前狀態相匹配的初始遷移。

相關問題