As discussed in the documentation[#foot1 (1)]: - After syncdb, execute an ALTER TABLE statement to convert tables {{{ ALTER TABLE ENGINE=INNODB; }}} - or, change settings to use the init_command option for MySQLdb: {{{#!python # settings.py DATABASES = { 'default': { 'OPTIONS': { # works because South changes table creation 'init_command': 'SET storage_engine=INNODB', } } } }}} - or, use post_syncdb trick listed in wiki:AlterModelOnSyncDB, - or, create a management.py file along with your app, with: {{{#!python # management.py from django.db import connection # syncdb does "import_module('.management', app_name)" # IOW, this gets executed before creating the tables. connection.cursor().execute('SET storage_engine=InnoDB;') }}} - or, if you use South[#foot2 (2)] for migrations, with: {{{#!python # settings.py DATABASES = { 'default': { 'STORAGE_ENGINE': 'INNODB' } } }}} - or, if you can, edit my.cnf {{{ # my.cnf default-storage-engine=InnoDB }}} * [=#foot1 (1)] https://docs.djangoproject.com/en/dev/ref/databases/#creating-your-tables * [=#foot2 (2)] http://south.aeracode.org/docs/settings.html#mysql-storage-engine