AttributeError: 'Customer' object has no attribute 'status'` while trying to restore backup from v6 to v7

I was trying to restore backup from v6 to v7 and got the following error. I followed instructions from here. Any idea how can I solve it or follow any easier way to migrate data from v6 to v7 in a fresh installation?

Executing erpnext.patches.v6_16.update_billing_status_in_dn_and_pr in sitename (591c52ce9fadedb8) Traceback (most recent call last): File "/usr/lib/python2.7/", line 162, 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 "/home/frappe/frappe-bench/apps/frappe/frappe/utils/", line 79, in <module> main() File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/", line 16, in main click.Group(commands=commands)(prog_name='bench') File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 716, in __call__ return self.main(*args, **kwargs) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 696, in main rv = self.invoke(ctx) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 1060, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 1060, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 889, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 534, in invoke return callback(*args, **kwargs) File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/", line 24, in _func ret = f(frappe._dict(ctx.obj), *args, **kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/", line 209, in migrate migrate(context.verbose, rebuild_website=rebuild_website) File "/home/frappe/frappe-bench/apps/frappe/frappe/", line 30, in migrate frappe.modules.patch_handler.run_all() File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/", line 29, in run_all if not run_single(patchmodule = patch): File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/", line 63, in run_single return execute_patch(patchmodule, method, methodargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/", line 83, in execute_patch frappe.get_attr(patchmodule.split()[0] + ".execute")() File "/home/frappe/frappe-bench/apps/erpnext/erpnext/patches/v6_16/", line 40, in execute doc.set_status(update=True, update_modified=False) File "/home/frappe/frappe-bench/apps/erpnext/erpnext/controllers/", line 132, in set_status self.db_set('status', self.status, update_modified = update_modified) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/", line 387, in db_set self.run_method('on_change') File "/home/frappe/frappe-bench/apps/frappe/frappe/model/", line 651, in run_method out = Document.hook(fn)(self, *args, **kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/", line 858, in composer return composed(self, method, *args, **kwargs) File "/home/frappe/frappe-bench/apps/frappe/frappe/model/", line 843, in runner add_to_return_value(self, f(self, method, *args, **kwargs)) File "/home/frappe/frappe-bench/apps/erpnext/erpnext/accounts/", line 55, in notify_status if party.status == 'Open': AttributeError: 'Customer' object has no attribute 'status'

@mar: I believe there is no way to restore backups made for v.6 against an instance of v.7. Thus the errors you reported are no way to trap.

You may want to consider a few other options

  • upgrade of your ERP Next replica (code and data) to v.7 using bench update (this may lead to errors , depending on the extent of customization in your copy of ERP Next - therefore trying this on a separate testing/staging server will be wise before you make your call on GO with it in production)
  • export of your v.6 data into csv files and then importing them to v.7 instance using either Data Import tool or bench import-csv command
  • writing a custom python script to import your data into v.7 instance, using Frappe API