Invalid SQL in bench migrate version 11 to 12

Migrating from version 11 to version 12 results in a fatal error.

 $ bench --site erpdev.mydomain.co.za    migrate

Executing frappe.patches.v12_0.remove_deprecated_fields_from_doctype #3 in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 4.854s
Executing execute:frappe.reload_doc('core', 'doctype', 'comment') in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 1.063s
Executing execute:frappe.reload_doc('email', 'doctype', 'document_follow') in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 0.587s
Executing execute:frappe.reload_doc('core', 'doctype', 'communication_link') #2019-10-02 in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 0.762s
Executing execute:frappe.reload_doc('core', 'doctype', 'communication') #2019-10-02 in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 3.934s
Executing frappe.patches.v11_0.set_default_letter_head_source in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Success: Done in 1.332s
Executing frappe.patches.v12_0.set_primary_key_in_series in erpdev.mydomain.co.za (_9ebf02b41d296e03)
Syntax error in query:
ALTER table `tabSeries` ADD PRIMARY KEY IF NOT EXISTS (name)

The issue can be fixed in the following file

frappe-bench/apps/frappe/frappe/patches/v12_0/set_primary_key_in_series.py (line 21)

Old code

    ALTER table `tabSeries` ADD PRIMARY KEY IF NOT EXISTS (name)

New code

    ALTER table `tabSeries` ADD PRIMARY KEY (name)

mysql --version
mysql Ver 15.1 Distrib 10.2.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

1 Like