2012-07-11 117 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)