2012-03-08 50 views
10

「South」是一個爲Django自動遷移數據庫的工具。Django south - 如何放棄一個錯誤的(和破碎的)遷移

如何「放棄」或「刪除」未決的Django South遷移?我犯了一個錯誤,並簡單地問django做一個不可能的約束。因此,我不能讓過去09步才能到第10步:

# python2.7 manage.py migrate --list 

django_authopenid 
    (*) 0001_initial 
... 

mymodule 
    (*) 0001_initial 
    (*) 0008_auto__add_mystuff__chg_field_facetanswer_answer_note__del_field_facetq 
    ... 
    () 0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc 
    () 0010_auto__del_unique_mystuff_who 

,如果我可以乾脆放棄步09和10,我可以運行「python2.7 manage.py schemamigration --auto」再次被啓動和運行。我怎樣才能克服這個錯誤?我可以在遷移08的Python文件中註釋掉'不可能'的行,但我可以看到導致問題。

相關但不點又比較是What's the recommended approach to resetting migration history using Django South?

回答

11

沒有*圍繞0009和0010 schemamigration,這意味着他們還沒有得到應用。你可以簡單地刪除它們,因爲它們現在對數據庫沒有任何意義。

p.s.爲了確保打開你的數據庫,看看是否有什麼新的變化

+0

爲了澄清這一點:確保完成這些步驟後不會出現在DB south_migrationhistory,進入目錄的遷移和刪除文件0009_auto__add_module_redit__add_unique_mystuff_who__chg_field_product_desc.py *和0010_auto__del_unique_mystuff_who .py * – 2013-09-03 00:31:03

+0

你真棒!我實際上只是將它們放在一邊,並要求它再次進行遷移。太簡單!! – 2014-12-15 08:36:40