diff --git a/frappe/patches.txt b/frappe/patches.txt index 36dc85102b..955f9b896f 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -236,3 +236,4 @@ frappe.patches.v15_0.sanitize_workspace_titles frappe.patches.v15_0.migrate_role_profile_to_table_multi_select frappe.patches.v15_0.migrate_session_data frappe.custom.doctype.property_setter.patches.remove_invalid_fetch_from_expressions +frappe.patches.v16_0.switch_default_sort_order diff --git a/frappe/patches/v16_0/switch_default_sort_order.py b/frappe/patches/v16_0/switch_default_sort_order.py new file mode 100644 index 0000000000..1e2d61456e --- /dev/null +++ b/frappe/patches/v16_0/switch_default_sort_order.py @@ -0,0 +1,25 @@ +import click + +import frappe +from frappe.patches.v14_0.drop_unused_indexes import drop_index_if_exists + + +def execute(): + if frappe.db.db_type == "postgres": + return + + db_tables = frappe.db.get_tables(cached=False) + + doctypes = frappe.get_all( + "DocType", + {"is_virtual": 0, "istable": 0}, + pluck="name", + ) + + for doctype in doctypes: + table = f"tab{doctype}" + if table not in db_tables: + continue + frappe.db.add_index(doctype, ["creation"], index_name="creation") + click.echo(f"✓ created creation index from {table}") + drop_index_if_exists(table, "modified")