From 9d6450d69b3a8c950f7a64b9549c8abf688dcbe3 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 12 Jun 2014 11:44:05 +0530 Subject: [PATCH] Patch: change default fields like name, owner, etc to varchar(255) --- frappe/model/db_schema.py | 4 ++-- frappe/patches.txt | 1 + frappe/patches/v4_0/change_varchar_length.py | 23 ++++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 frappe/patches/v4_0/change_varchar_length.py diff --git a/frappe/model/db_schema.py b/frappe/model/db_schema.py index b6078e5b1c..488f623cea 100644 --- a/frappe/model/db_schema.py +++ b/frappe/model/db_schema.py @@ -77,8 +77,8 @@ class DbTable: name varchar(255) not null primary key, creation datetime(6), modified datetime(6), - modified_by varchar(40), - owner varchar(60), + modified_by varchar(255), + owner varchar(255), docstatus int(1) default '0', parent varchar(255), parentfield varchar(255), diff --git a/frappe/patches.txt b/frappe/patches.txt index 37baaaf15b..76e8367c8f 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -9,6 +9,7 @@ execute:frappe.reload_doc('core', 'doctype', 'report') #2014-06-03 execute:frappe.reload_doc('core', 'doctype', 'version') #2014-02-21 execute:frappe.db.sql("alter table `tabSessions` modify `user` varchar(255), engine=InnoDB") execute:frappe.db.sql("delete from `tabDocField` where parent='0'") +frappe.patches.v4_0.change_varchar_length frappe.patches.v4_0.webnotes_to_frappe execute:frappe.reset_perms("Module Def") diff --git a/frappe/patches/v4_0/change_varchar_length.py b/frappe/patches/v4_0/change_varchar_length.py new file mode 100644 index 0000000000..f822bced5a --- /dev/null +++ b/frappe/patches/v4_0/change_varchar_length.py @@ -0,0 +1,23 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + for dt in frappe.db.sql_list("""select name from `tabDocType` where ifnull(issingle, 0)=0"""): + desc = dict((d["Field"], d) for d in frappe.db.sql("desc `tab{}`".format(dt), as_dict=True)) + alter_table = [] + + if desc["name"]["Type"] != "varchar(255)": + alter_table.append("change `name` `name` varchar(255) not null primary key") + + for fieldname in ("modified_by", "owner", "parent", "parentfield", "parenttype"): + if desc[fieldname]["Type"] != "varchar(255)": + alter_table.append("change `{fieldname}` `{fieldname}` varchar(255)".format(fieldname=fieldname)) + + if alter_table: + alter_table_query = "alter table `tab{doctype}` {alter_table}".format(doctype=dt, alter_table=",\n".join(alter_table)) + # print alter_table_query + frappe.db.sql_ddl(alter_table_query) +