2012-07-11 67 views
0

我意外地使用--fake選項運行了僞造的南遷移應用,但數據庫缺少最後一次更改。將South遷移標記爲新

我僞造了三次遷移,但數據庫狀態仍然是0002.如果列出遷移,則所有遷移都標記爲運行。

$ ./manage.py migrate cmsplugin_mailchimp --list 

cmsplugin_mailchimp 
    (*) 0001_initial 
    (*) 0002_thankyou_field 
    (*) 0003_redirect_url 

有沒有一種方法,以紀念最新的遷移是新的,所以,當我運行./manage.py migrate cmsplugin_mailchimp它得到處理?

回答

3

沒有額外的選項可以「將遷移標記爲新的」,但有一個不同的,非常明顯的解決方案:只需執行向後遷移即可。

$ ./manage.py migrate cmsplugin_mailchimp 0002 --fake 

- Soft matched migration 0002 to 0002_thankyou_field. 
Running migrations for cmsplugin_mailchimp: 
- Migrating backwards to just after 0002_thankyou_field. 
< cmsplugin_mailchimp:0003_redirect_url 
    (faked) 

$ ./manage.py migrate cmsplugin_mailchimp --list 

cmsplugin_mailchimp 
    (*) 0001_initial 
    (*) 0002_thankyou_field 
    () 0003_redirect_url 

現在南方的狀態的數據庫狀態相匹配,並可以實際運行的最後遷移::

$ ./manage.py migrate cmsplugin_mailchimp 

Running migrations for cmsplugin_mailchimp: 
- Migrating forwards to 0003_redirect_url. 
> cmsplugin_mailchimp:0003_redirect_url 
- Loading initial data for cmsplugin_mailchimp. 
Installed 0 object(s) from 0 fixture(s)