Modify ↓
Ticket #1047 (closed defect: fixed)
has_ddl_transactions property broken with MySQL and Django 1.3
| Reported by: | carl@… | Owned by: | andrew |
|---|---|---|---|
| Priority: | blocker | Milestone: | 1.0 |
| Component: | commands | Version: | mercurial |
| Keywords: | Cc: |
Description
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?
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

You're very much right. Fixed in [126a1ad2ee9d].