How to redo a migration on django 1.8 after using --fake

廉价感情. 提交于 2019-11-27 00:34:47

问题


Something went wrong on my migrations, I added a new datetimefield to a model then I used makemigrations and migrate.

python manage.py makemigrations
python manage.py migrate

But after this the migrate got an "table already exists error". I supposed I could fake the migrations and start over, so I did

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

but the new migrate that I've just created was faked too (of course!).

How is the proper way to redo a migration (in this case the core.0004) after doing this?


回答1:


You should first set your current state to 0003 with --fake (assuming 0003 is the last migration you really have applied):

python manage.py migrate --fake core 0003

And then proceed as usual:

python manage.py migrate core

Relevant documentation: https://docs.djangoproject.com/en/dev/ref/django-admin/#migrate



来源:https://stackoverflow.com/questions/30626886/how-to-redo-a-migration-on-django-1-8-after-using-fake

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!