Currently it's somewhat difficult to process initial data after a flush.
You will need to fake the database state...
In my case I'm creating all tables of the project with the migration
0001 and populating with initial data on migration 0002.
After spending a time looking for solutions found
basically does:
assert settings.DEBUG
cursor.execute('drop database; create database...')
call_command('migrate')
I think this solves your problem better than any change to migrations.
Executing "just one migration out of order" is not generally possible
unles