如何在使用--fake后重做django 1.8上的迁移

时间:2015-06-03 17:30:08

标签: django django-migrations django-1.8

我的迁移出了点问题,我在模型中添加了一个新的datetimefield然后我使用了makemigrations并进行了迁移。

python manage.py makemigrations
python manage.py migrate

但在此之后,迁移得到了“表已存在错误”。我想我可以假装迁移并重新开始,所以我做了

python manage.py makemigrations --fake core

Operations to perform:
  Apply all migrations: core
Running migrations:
  Rendering model states... DONE
  Applying core.0001_initial... FAKED
  Applying core.0002_auto_20150525_1331... FAKED
  Applying core.0003_auto_20150525_1348... FAKED
  Applying core.0004_processo_data_atualizacao... FAKED

但是我刚刚创建的新迁移也是伪造的(当然!)。

执行此操作后,如何重做迁移(在本例中为core.0004)的正确方法?

1 个答案:

答案 0 :(得分:87)

您应首先使用--fake将当前状态设置为0003(假设0003是您实际应用的最后一次迁移):

python manage.py migrate --fake core 0003

然后像往常一样继续:

python manage.py migrate core

相关文档:https://docs.djangoproject.com/en/dev/ref/django-admin/#migrate