add/drop index if index key not exists / exists

This commit is contained in:
Nabin Hait 2012-08-07 10:41:18 +05:30
parent 98ecfe04dc
commit c739cd54cb

View file

@ -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)