'Run a migration backwards.'

def unapply_migration(self, state, migration, fake=False):

    if self.progress_callback:
        self.progress_callback('unapply_start', migration, fake)
    if (not fake):
        with self.connection.schema_editor(atomic=migration.atomic) as schema_editor:
            state = migration.unapply(state, schema_editor)
    if migration.replaces:
        for (app_label, name) in migration.replaces:
            self.recorder.record_unapplied(app_label, name)
    else:
        self.recorder.record_unapplied(migration.app_label, migration.name)
    if self.progress_callback:
        self.progress_callback('unapply_success', migration, fake)
    return state
