我意外地使用--fake
选项为应用程序运行伪造的南迁移,但数据库缺少最后一次更改。
我伪造了三次迁移,但数据库状态仍为0002.如果列出迁移,则所有迁移都标记为run。
$ ./manage.py migrate cmsplugin_mailchimp --list
cmsplugin_mailchimp
(*) 0001_initial
(*) 0002_thankyou_field
(*) 0003_redirect_url
有没有办法将最新的迁移标记为新的,以便在我运行./manage.py migrate cmsplugin_mailchimp
时处理它?</ p>
答案 0 :(得分: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
现在South的状态与数据库的状态匹配,您实际上可以运行上一次迁移::
$ ./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)