ImportError: cannot import name Database

This error happens when I switch to master branch from develop using bench switch-to-branch master frappe succeed for both frappe & erpnext apps, then when I run bench update --patch I got this error

ImportError: cannot import name Database

then according to issu
I run; find . -name "*.pyc" -exec rm -f {} \; now when I run bench update --patch I get this error

pymysql.err.IntegrityError: (1048, u"Column 'translatable' cannot be null")

then according to issue
I altered some tables by using commands

alter table tabDocField modify column translatable int(1) NULL default 0;
 alter table tabDocField modify column allow_in_quick_entry int(1) NULL default 0;

and when I run bench update --patch I get the following error

bench@MMERP07:~/erpnext$ bench update --patch
Backing up sites...
Patching sites...
Migrating site1.local
Executing execute:frappe.reload_doc('core', 'doctype', 'docperm') #2017-03-03 in site1.local (_1bd3e0294da19198)
Executing execute:frappe.delete_doc("DocType", "Hub Settings", ignore_missing=True) in site1.local (_1bd3e0294da19198)
Executing erpnext.patches.v4_0.set_naming_series_property_setter in site1.local (_1bd3e0294da19198)
Traceback (most recent call last):
  File "/usr/lib/python2.7/", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/", line 72, in _run_code
    exec code in run_globals
  File "/opt/bench/erpnext/apps/frappe/frappe/utils/", line 94, in <module>
  File "/opt/bench/erpnext/apps/frappe/frappe/utils/", line 18, in main
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 717, in main
    rv = self.invoke(ctx)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 555, in invoke
    return callback(*args, **kwargs)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/click/", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/bench/erpnext/apps/frappe/frappe/commands/", line 24, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/opt/bench/erpnext/apps/frappe/frappe/commands/", line 222, in migrate
    migrate(context.verbose, rebuild_website=rebuild_website)
  File "/opt/bench/erpnext/apps/frappe/frappe/", line 31, in migrate
  File "/opt/bench/erpnext/apps/frappe/frappe/modules/", line 29, in run_all
    if not run_single(patchmodule = patch):
  File "/opt/bench/erpnext/apps/frappe/frappe/modules/", line 63, in run_single
    return execute_patch(patchmodule, method, methodargs)
  File "/opt/bench/erpnext/apps/frappe/frappe/modules/", line 83, in execute_patch
    frappe.get_attr(patchmodule.split()[0] + ".execute")()
  File "/opt/bench/erpnext/apps/erpnext/erpnext/patches/v4_0/", line 36, in execute
    series_to_set = get_series_to_set()
  File "/opt/bench/erpnext/apps/erpnext/erpnext/patches/v4_0/", line 49, in get_series_to_set
    if not frappe.db.a_row_exists(doctype):
  File "/opt/bench/erpnext/apps/frappe/frappe/", line 788, in a_row_exists
    return self.sql("select name from `tab{doctype}` limit 1".format(doctype=doctype))
  File "/opt/bench/erpnext/apps/frappe/frappe/", line 176, in sql
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 170, in execute
    result = self._query(query)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 328, in _query
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 516, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 727, in _read_query_result
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 1066, in read
    first_packet = self.connection._read_packet()
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 683, in _read_packet
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 220, in check_error
  File "/opt/bench/erpnext/env/local/lib/python2.7/site-packages/pymysql/", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1146, u"Table '_1bd3e0294da19198.tabProduction Order' doesn't exist")

there is not any issue for this error.

Check if this helps you:


thank you @root13F to reply me
I already tried that, that solution leads me to another issue

Faced the same issue. I Fixed it.

If you are shifting between branches and facing this error (I face this error when I switch to develop and then back to staging-fixes), run the following command

if you are in frappe-bench folder
frappe-bench > cd apps/frappe
frappe-bench/apps/frappe > find . -name “*.pyc” -exec rm -f {} ;

bench build & migrate. Working fine.


This syntax didn’t work for me, so stackoverflow recommended I try this instead:
find . -name \*.pyc -delete
find has a built in delete method apparently.


frappe-bench/apps/frappe > find . -name “*.pyc” -exec rm -f {} \ ;

there is \ before ; work for me.