From 39031d18ed5ff063d50a045b3f3a947fc642fa86 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Sun, 23 Jan 2022 17:44:07 +0530 Subject: [PATCH] fix: Check if index exists with specific key_name --- frappe/database/mariadb/schema.py | 6 +++--- frappe/database/schema.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frappe/database/mariadb/schema.py b/frappe/database/mariadb/schema.py index f1691765b5..f7abac6547 100644 --- a/frappe/database/mariadb/schema.py +++ b/frappe/database/mariadb/schema.py @@ -69,7 +69,7 @@ class MariaDBTable(DBTable): if unique_constraint_changed and not col.unique: unique_index_record = frappe.db.sql(""" SHOW INDEX FROM `{0}` - WHERE Column_name=%s + WHERE Key_name=%s AND Non_unique=0 """.format(self.table_name), (col.fieldname), as_dict=1) if unique_index_record: @@ -79,9 +79,9 @@ class MariaDBTable(DBTable): if index_constraint_changed and not col.set_index: index_record = frappe.db.sql(""" SHOW INDEX FROM `{0}` - WHERE Column_name=%s + WHERE Key_name=%s AND Non_unique=1 - """.format(self.table_name), (col.fieldname), as_dict=1) + """.format(self.table_name), (col.fieldname + '_index'), as_dict=1) if index_record: drop_index_query.append("DROP INDEX `{}`".format(index_record[0].Key_name)) diff --git a/frappe/database/schema.py b/frappe/database/schema.py index 10582eff8f..5b4788a9c2 100644 --- a/frappe/database/schema.py +++ b/frappe/database/schema.py @@ -230,7 +230,7 @@ class DbColumn: self.table.set_default.append(self) # index should be applied or dropped irrespective of type change - if ((current_def['index'] and not self.set_index and not self.unique) + if ((current_def['index'] and not self.set_index) or (current_def['unique'] and not self.unique)): # to drop unique you have to drop index self.table.drop_index.append(self)