From c739cd54cb5a1efae4a4e260b9957870c48d58bb Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 7 Aug 2012 10:41:18 +0530 Subject: [PATCH] add/drop index if index key not exists / exists --- py/webnotes/model/db_schema.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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)