diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2014-08-07 11:59:11 +1000 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2014-08-07 12:00:13 +1000 |
| commit | 91195c77d09cde526df75eb06d1c1145e19d8ea5 (patch) | |
| tree | 180d02ef7baeabaac6511982b684acf6a217e6c5 | |
| parent | 0e69af51b1557ebe3ce93fe31498f3fa797b4b83 (diff) | |
[1.7.x] Moved index dropping after FK dropping to please MySQL and fix test
| -rw-r--r-- | django/db/backends/schema.py | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/django/db/backends/schema.py b/django/db/backends/schema.py index b10412751d..8bc9bfa432 100644 --- a/django/db/backends/schema.py +++ b/django/db/backends/schema.py @@ -528,23 +528,6 @@ class BaseDatabaseSchemaEditor(object): "name": constraint_name, }, ) - # Removed an index? - if old_field.db_index and not new_field.db_index and not old_field.unique and not (not new_field.unique and old_field.unique): - # Find the index for this field - index_names = self._constraint_names(model, [old_field.column], index=True) - if strict and len(index_names) != 1: - raise ValueError("Found wrong number (%s) of indexes for %s.%s" % ( - len(index_names), - model._meta.db_table, - old_field.column, - )) - for index_name in index_names: - self.execute( - self.sql_delete_index % { - "table": self.quote_name(model._meta.db_table), - "name": index_name, - } - ) # Drop any FK constraints, we'll remake them later fks_dropped = set() if old_field.rel: @@ -575,6 +558,23 @@ class BaseDatabaseSchemaEditor(object): "name": fk_name, } ) + # Removed an index? + if old_field.db_index and not new_field.db_index and not old_field.unique and not (not new_field.unique and old_field.unique): + # Find the index for this field + index_names = self._constraint_names(model, [old_field.column], index=True) + if strict and len(index_names) != 1: + raise ValueError("Found wrong number (%s) of indexes for %s.%s" % ( + len(index_names), + model._meta.db_table, + old_field.column, + )) + for index_name in index_names: + self.execute( + self.sql_delete_index % { + "table": self.quote_name(model._meta.db_table), + "name": index_name, + } + ) # Change check constraints? if old_db_params['check'] != new_db_params['check'] and old_db_params['check']: constraint_names = self._constraint_names(model, [old_field.column], check=True) |
