For that I have another approach I took, I modified the settings file & added in Meta an option. To give you an idea here's the patch against Revision: 5773.

# use a consistant MySQL storage type for all apps, all models

Index: django/db/models/options.py
===================================================================
--- django/db/models/options.py (revision 5773)
+++ django/db/models/options.py (working copy)
@@ -15,7 +15,7 @@

 DEFAULT_NAMES = ('verbose_name', 'db_table', 'ordering',
                  'unique_together', 'permissions', 'get_latest_by',
-                 'order_with_respect_to', 'app_label', 'db_tablespace')
+                 'order_with_respect_to', 'app_label', 'db_tablespace', 'db_storage_engine')

 class Options(object):
     def __init__(self, meta):
@@ -30,6 +30,7 @@
         self.get_latest_by = None
         self.order_with_respect_to = None
         self.db_tablespace = None
+        self.db_storage_engine = None
         self.admin = None
         self.meta = meta
         self.pk = None
Index: django/db/backends/mysql/base.py
===================================================================
--- django/db/backends/mysql/base.py    (revision 5773)
+++ django/db/backends/mysql/base.py    (working copy)
@@ -141,6 +141,7 @@
 needs_upper_for_iops = False
 supports_constraints = True
 supports_tablespaces = False
+supports_storage_engines = True
 uses_case_insensitive_names = False

 def quote_name(name):
@@ -207,6 +208,9 @@
 def get_autoinc_sql(table):
     return None

+def get_storageengine_sql(engine):
+    return "ENGINE = %s" % engine
+
 def get_sql_flush(style, tables, sequences):
     """Return a list of SQL statements required to remove all data from
     all tables in the database (without actually removing the tables
Index: django/core/management.py
===================================================================
--- django/core/management.py   (revision 5773)
+++ django/core/management.py   (working copy)
@@ -153,6 +153,7 @@
     Returns list_of_sql, pending_references_dict
     """
     from django.db import backend, models
+    from django.conf import settings

     opts = model._meta
     final_output = []
@@ -203,6 +204,9 @@
     full_statement.append(')')
     if opts.db_tablespace and backend.supports_tablespaces:
         full_statement.append(backend.get_tablespace_sql(opts.db_tablespace))
+    if backend.supports_storage_engines:
+        storage = opts.db_storage_engine or settings.DATABASE_STORAGE_ENGINE
+        full_statement.append(backend.get_storageengine_sql(storage))
     full_statement.append(';')
     final_output.append('\n'.join(full_statement))

For brevity's sake, Only works for SQL here, other backends would need to simply set the supports_storage_engines = False.

If enough interest arises, I can modify that into a proper patch against HEAD

--- tony