From 9ab9c89e90e88c3dfe0494a027ad3e7c127732b3 Mon Sep 17 00:00:00 2001 From: Oskar Persson Date: Mon, 13 Nov 2017 11:21:19 +0000 Subject: [PATCH] Delete index when db_constraint is changed to False --- sql_server/pyodbc/schema.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sql_server/pyodbc/schema.py b/sql_server/pyodbc/schema.py index 2dd62d16..c5bd99c8 100644 --- a/sql_server/pyodbc/schema.py +++ b/sql_server/pyodbc/schema.py @@ -66,6 +66,11 @@ def _alter_field(self, model, old_field, new_field, old_type, new_type, # Drop any FK constraints, we'll remake them later fks_dropped = set() if old_field.remote_field and old_field.db_constraint: + if not new_field.db_constraint: + index_names = self._constraint_names(model, [old_field.column], index=True) + for index_name in index_names: + self.execute(self._delete_constraint_sql(self.sql_delete_index, model, index_name)) + fk_names = self._constraint_names(model, [old_field.column], foreign_key=True) if strict and len(fk_names) != 1: raise ValueError("Found wrong number (%s) of foreign key constraints for %s.%s" % (