Bench Update Error ERPNext v12

I tried updating my instance opf ERPNext using bench --update reset

It did not complete succesfully. I got the following output form the console:

Executing frappe.patches.v12_0.replace_old_data_import in site1.local (_1bd3e0294da19198)
Traceback (most recent call last):
File “/usr/lib/python3.5/runpy.py”, line 184, in _run_module_as_main
main”, mod_spec)
File “/usr/lib/python3.5/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 99, in
main()
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py”, line 26, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py”, line 266, in migrate
migrate(context.verbose, rebuild_website=rebuild_website, skip_failing=skip_failing)
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 48, in migrate
frappe.modules.patch_handler.run_all(skip_failing)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 41, in run_all
run_patch(patch)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 30, in run_patch
if not run_single(patchmodule = patch):
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 71, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 91, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/frappe/frappe-bench/apps/frappe/frappe/patches/v12_0/replace_old_data_import.py”, line 13, in execute
frappe.rename_doc(‘DocType’, ‘Data Import’, ‘Data Import Legacy’)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 822, in rename_doc
return rename_doc(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/rename_doc.py”, line 62, in rename_doc
update_link_field_values(link_fields, old, new, doctype)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/rename_doc.py”, line 235, in update_link_field_values
fieldname=field[‘fieldname’]), (new, old))
File “/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py”, line 156, in sql
self._cursor.execute(query, values)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/cursors.py”, line 328, in _query
conn.query(q)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 517, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 732, in _read_query_result
result.read()
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/connections.py”, line 684, in _read_packet
packet.check_error()
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/protocol.py”, line 220, in check_error
err.raise_mysql_exception(self._data)
File “/home/frappe/frappe-bench/env/lib/python3.5/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1054, “Unknown column ‘reference_dt’ in ‘where clause’”)

I have seen several similar issues on the platform but non of htem solutions worked for me.

Things i have tried:

  • bench --site site1.local set-maintenance-mode off
  • bench restart
  • sudo supervisorctl restart all

Also, could not access the instance anymore on web. Any guide would be appreciated.

Unknown column implies a mismatch of DB structure.
Try

bench update --patch

bench update --patch
bench setup requirements
bench update migrate
bench restart

I’ve tried both @trentmu and @Suresh_Thakor suggestions without any success. Still get the same error.

It appears the very command bench update triggers the error.

Also, before attempting the very first bench update that caused the error, I was seeing the same error on the web front-end anytime i try to create a new invoice.

Thanks. But still did not work

@Suresh_Thakor @trentmu I solved the issues by:

  1. downloading a backup of my database
  2. searching for “reference_dt” in the sql dump. This is because the error message says: “Unknown column ‘reference_dt’ in ‘where clause’”. I saw two instance of the “reference_dt” string in the sql dump. The two instance belong to a single record that was inserted into a “tabCustom Field” table. I guess one of my users must have entered the record.
  3. I removed the record containing the “reference_dt”
  4. I restored the edited version of my sql
    bench --site site1.local --force restore [FILE_PATH]
  5. updated the site
    bench update
  6. Everythng working fine now.