Преглед изворни кода

Avoid exception when changing fieldname from upper to lowercase (#2517)

version-14
Mohammed Alokshiya пре 8 година
committed by Rushabh Mehta
родитељ
комит
4b4ec8e01e
1 измењених фајлова са 6 додато и 4 уклоњено
  1. +6
    -4
      frappe/model/db_schema.py

+ 6
- 4
frappe/model/db_schema.py Прегледај датотеку

@@ -254,7 +254,7 @@ class DbTable:
def get_columns_from_db(self): def get_columns_from_db(self):
self.show_columns = frappe.db.sql("desc `%s`" % self.name) self.show_columns = frappe.db.sql("desc `%s`" % self.name)
for c in self.show_columns: for c in self.show_columns:
self.current_columns[c[0]] = {'name': c[0],
self.current_columns[c[0].lower()] = {'name': c[0],
'type':c[1], 'index':c[3]=="MUL", 'default':c[4], "unique":c[3]=="UNI"} 'type':c[1], 'index':c[3]=="MUL", 'default':c[4], "unique":c[3]=="UNI"}


# GET foreign keys # GET foreign keys
@@ -290,7 +290,7 @@ class DbTable:


def alter(self): def alter(self):
for col in self.columns.values(): for col in self.columns.values():
col.build_for_alter_table(self.current_columns.get(col.fieldname, None))
col.build_for_alter_table(self.current_columns.get(col.fieldname.lower(), None))


query = [] query = []


@@ -298,7 +298,8 @@ class DbTable:
query.append("add column `{}` {}".format(col.fieldname, col.get_definition())) query.append("add column `{}` {}".format(col.fieldname, col.get_definition()))


for col in self.change_type: for col in self.change_type:
query.append("change `{}` `{}` {}".format(col.fieldname, col.fieldname, col.get_definition()))
current_def = self.current_columns.get(col.fieldname.lower(), None)
query.append("change `{}` `{}` {}".format(current_def["name"], col.fieldname, col.get_definition()))


for col in self.add_index: for col in self.add_index:
# if index key not exists # if index key not exists
@@ -395,7 +396,8 @@ class DbColumn:
return return


# type # type
if (current_def['type'] != column_def) or \
if (current_def['type'] != column_def) or\
self.fieldname != current_def['name'] or\
((self.unique and not current_def['unique']) and column_def not in ('text', 'longtext')): ((self.unique and not current_def['unique']) and column_def not in ('text', 'longtext')):
self.table.change_type.append(self) self.table.change_type.append(self)




Loading…
Откажи
Сачувај