diff --git a/py/webnotes/model/db_schema.py b/py/webnotes/model/db_schema.py index 0de8cd8711..6d7882b413 100644 --- a/py/webnotes/model/db_schema.py +++ b/py/webnotes/model/db_schema.py @@ -200,15 +200,15 @@ class DbTable: webnotes.conn.sql("alter table `%s` change `%s` `%s` %s" % (self.name, col.fieldname, col.fieldname, col.get_definition())) for col in self.add_index: - webnotes.conn.sql("alter table `%s` add index `%s`(`%s`)" % (self.name, col.fieldname, col.fieldname)) + # if index key not exists + if not webnotes.conn.sql("show index from `%s` where key_name = `%s`" % (self.name, col.fieldname)): + webnotes.conn.sql("alter table `%s` add index `%s`(`%s`)" % (self.name, col.fieldname, col.fieldname)) for col in self.drop_index: if col.fieldname != 'name': # primary key - try: + # if index key exists + if webnotes.conn.sql("show index from `%s` where key_name = `%s`" % (self.name, col.fieldname)): webnotes.conn.sql("alter table `%s` drop index `%s`" % (self.name, col.fieldname)) - except _mysql_exceptions.OperationalError, e: - if e[0] != 1091: raise e - for col in self.set_default: webnotes.conn.sql("alter table `%s` alter column `%s` set default %s" % (self.name, col.fieldname, '%s'), col.default)