./manage.py migrate
looks at the django_migrations table to find out what migrations have run, not at the current state of the database.
How