问题
In my project which is based on django-1.8.2 I was facing some problems with migrations so i ran command
python manage.py migrate --fake
But it faked all the migrations which this command is meant for. But now python manage.py migrate command is not doing or applying any migration. I want to undo the faked migrations so that I can apply the migrations to database. I want to apply the existing migrations to the database.
回答1:
For each app, you can fake the migrations back to where they were before you faked them.
python manage.py migrate --fake myapp 00XX_last_migration
where 00XX_last_migration is the last migration that you actually ran for your app myapp.
Or, if you haven't actually run any migrations for that app yet:
python manage.py migrate --fake myapp zero
回答2:
From the docs:
be warned that using --fake runs the risk of putting the migration state table into a state where manual recovery will be needed to make migrations run correctly.
So I suggest you to simply remove faked migrations from django_migrations table.
来源:https://stackoverflow.com/questions/31731211/undo-or-reset-the-faked-migrations-in-django