Ticket #1047 (closed defect: fixed)
has_ddl_transactions property broken with MySQL and Django 1.3
|Reported by:||carl@…||Owned by:||andrew|
The new has_ddl_transactions property code assumes that if the DDL_TRANSACTION_TEST table still exists and we try to create it again, DatabaseError will be raised. For MySQL in Django 1.3, this is not true; OperationalError is raised instead. This was fixed in Django in r17353. This makes South completely unusable with Django 1.3 and MySQL; it will always crash the first time has_ddl_transactions is accessed.
Not entirely sure what the best fix is - perhaps parameterize the exceptions caught there so that backends can add more exceptions to the list, and then have the MySQL backend add MySQLdb's OperationalError?