bench update fails with ValueError
Closed this issue · 5 comments
Expected behvauour
bench update
is updateing successfully
Actual behaviour
Updating DocTypes for frappe : [========================================]
Updating DocTypes for erpnext : [========================================]
Updating DocTypes for erpnextswiss : [===== ]Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
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.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/frappe/frappe-bench/env/lib/python3.6/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.6/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.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/frappe/frappe-bench/env/lib/python3.6/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 25, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py", line 227, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File "/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py", line 49, in migrate
frappe.model.sync.sync_all(verbose=verbose)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/sync.py", line 19, in sync_all
sync_for(app, force, verbose=verbose, reset_permissions=reset_permissions)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/sync.py", line 56, in sync_for
reset_permissions=reset_permissions, for_sync=True)
File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 65, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File "/home/frappe/frappe-bench/apps/frappe/frappe/modules/import_file.py", line 100, in import_doc
doc = frappe.get_doc(docdict)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 734, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 69, in get_doc
return controller(*args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 113, in __init__
super(Document, self).__init__(kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 54, in __init__
self.update(d)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 77, in update
self.set(key, value)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 124, in set
self.extend(key, value)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 161, in extend
self.append(key, v)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 155, in append
self.name, str(type(value))[1:-1], value)
ValueError: Document for field "field_order" attached to child table of "Abacus Export File" must be a dict or BaseDocument, not class 'str' (from_date)
Observed in (version)
erpnext 11.1.68
erpnextswiss 1.6.0
frappe 11.1.62
Steps to reproduce
I think this might be a compatibility issue. With the current frappe / erpnext V11 version. If so, this will happen with each bench update
on at least the version-11 branch.
As far as I can see this is a compatibility issue with version-11. This affects a new doctype, which was designed in v12. V12 stores only the non-standard fields in the json and removes all standard fields. This generates a nice and short json file, however, will produce the above error on pre-V12 systems.
I have created a v11 compatibility branch (https://github.com/libracore/erpnextswiss/tree/v11) and removed the "field_order" tag in the affected doctypes. Could you please try if switching to v11 and then running the update resolves the issue? If not, we'll have to extend the field definition...
Thanks for the feedback. This is also an issue from reverting from desk 2.0.
It has been corrected in branch v11 with 9a61d5d
I forgot the issue. It's working fine now, thanks