[Release Note] ERPNext Version 12

Hi
Thanks Jignesh_shah for your tips
i additionally ran the following
cd ~/frappe-bench
sudo npm install -g yarn
bench update --requirements
bench setup socketio
bench build
bench update
Up and running V12
My heart felt thanks to JayRam for helping me out when i was really stuck
Thanks a lot everybody
Regards
Hemanth

1 Like

Unable to upgrade to ERPNEXT 12 Pls help

Traceback (most recent call last):
File “/usr/lib/python3.5/runpy.py”, line 193, 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/netmanthan/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, in
main()
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/netmanthan/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/home/netmanthan/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/home/netmanthan/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/netmanthan/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/netmanthan/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/netmanthan/frappe-bench/env/lib/python3.5/site-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/home/netmanthan/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/netmanthan/frappe-bench/apps/frappe/frappe/commands/init.py”, line 25, in _func
ret = f(frappe.dict(ctx.obj), *args, **kwargs)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/commands/site.py”, line 233, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/migrate.py”, line 48, in migrate
frappe.modules.patch_handler.run_all()
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 83, in execute_patch
frappe.get_attr(patchmodule.split()[0] + “.execute”)()
File “/home/netmanthan/frappe-bench/apps/erpnext/erpnext/patches/v12_0/set_gst_category.py”, line 10, in execute
make_custom_fields()
File “/home/netmanthan/frappe-bench/apps/erpnext/erpnext/regional/india/setup.py”, line 483, in make_custom_fields
create_custom_fields(custom_fields, update=update)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 140, in create_custom_fields
create_custom_field(doctype, df, ignore_validate=ignore_validate)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 124, in create_custom_field
custom_field.insert()
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 258, in insert
self.run_post_save_methods()
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 917, in run_post_save_methods
self.run_method(“on_update”)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 786, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 1055, in composer
return composed(self, method, *args, **kwargs)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 1038, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/model/document.py”, line 780, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 61, in on_update
validate_fields_for_doctype(self.dt)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/core/doctype/doctype/doctype.py”, line 562, in validate_fields_for_doctype
validate_fields(frappe.get_meta(doctype, cached=False))
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/core/doctype/doctype/doctype.py”, line 823, in validate_fields
check_link_table_options(meta.get(“name”), d)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/core/doctype/doctype/doctype.py”, line 607, in check_link_table_options
frappe.throw(
(“{0}: Options must be a valid DocType for field {1} in row {2}”).format(docname, d.label, d.idx), WrongOptionsDoctypeLinkError)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/init.py”, line 360, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’)
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/init.py”, line 346, in msgprint
_raise_exception()
File “/home/netmanthan/frappe-bench/apps/frappe/frappe/init.py”, line 315, in _raise_exception
raise raise_exception(msg)
frappe.core.doctype.doctype.doctype.WrongOptionsDoctypeLinkError: Item: Options must be a valid DocType for field Manufacturers in row 128

1 Like

@netmanthan What commands have you run already? What was the last one that led you to this error?

Thanks

Jay

1 Like

Hi Sir,
Thanks for the reply.

by running below the bench command shows this error.
Bench Update --Migrate
Bench Update --Patch
Bench Update --reset

but resolved by bench --site sitename run-patch erpnext.patches.v12_0.make_item_manufacturer
and
bench run-patch erpnext.patches.v12_0.make_item_manufacturer

1 Like

How can we access custom report shortcut? Like a sales invoice custom report made by the report builder. Before we simply had to click “add to desk” but now it look like it’s not possible to have access quickly anymore with the new desk.

In the menu customize shortcuts, it’s not possible to add the report too…
image

1 Like

I attempted to upgrade v10 to v12 and after facing several issues which i resolved, i landed in v11.1.4. All attempts to move to v12 since then have failed following the same steps outlined in all posts made about migration to v12 so far.

3 Likes

same with me as well…

1 Like

restoring backup of V10 to a fresh install of V12 fails. tried all the steps here. any suggestions on a fix?

skserpnext@skserpnext2:~/frappe-bench$ bench update --patch
Backing up sites...
Patching sites...
Migrating site1.local
Executing erpnext.patches.v12_0.set_priority_for_support in site1.local (_1bd3e0294da19198)
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
    main()
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/skserpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/skserpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/skserpnext/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/skserpnext/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/skserpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/skserpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/skserpnext/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/skserpnext/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 25, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/commands/site.py", line 234, in migrate
    migrate(context.verbose, rebuild_website=rebuild_website, skip_failing=skip_failing)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/migrate.py", line 48, in migrate
    frappe.modules.patch_handler.run_all(skip_failing)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 41, in run_all
    run_patch(patch)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 30, in run_patch
    if not run_single(patchmodule = patch):
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 71, in run_single
    return execute_patch(patchmodule, method, methodargs)
  File "/home/skserpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 91, in execute_patch
    frappe.get_attr(patchmodule.split()[0] + ".execute")()
  File "/home/skserpnext/frappe-bench/apps/erpnext/erpnext/patches/v12_0/set_priority_for_support.py", line 7, in execute
    set_issue_priority()
  File "/home/skserpnext/frappe-bench/apps/erpnext/erpnext/patches/v12_0/set_priority_for_support.py", line 14, in set_issue_priority
    for priority in frappe.get_meta("Issue").get_field("priority").options.split("\n"):
AttributeError: 'NoneType' object has no attribute 'options'
1 Like

I have the same problem. It is the patch erpnext.patches.v12_0.set_priority_for_support
A quick workaround is to disable this patch if you don’t ever use support doctype.
Proper solution is not known to me.

1 Like

@scmmishra, Please forward details on how to do database restore from v10 to v12 .

1 Like

This works also from v10 to v12

1 Like

This fails in case you have custom apps. Would suggest changing the instructions to:

Switching to Version 12

$ bench update
$ bench switch-to-branch version-12 frappe erpnext --upgrade

Switching to Version 11

$ bench update
$ bench switch-to-branch version-11 frappe erpnext --upgrade
3 Likes

Hi
Running in VM Box
Updated to V12 and running smoothly
a bench update throws me the error
bench update --reset also didnt solve the issue


any help on this
Thanks and Regards
Hemanth

1 Like

I have updated bench (master) and this isn’t working

1 Like

got it thru from 10 to 11… but not from 11 to 12 though !!

1 Like

backup ur current site/domain
drop ur db
restore from your backup
migrate
update
switch

1 Like

Finally installed v12, restored v11 backup (with custom apps), and then updated to v12 successfully. Below are the steps i followed:

// installed erpnext v12 (using install.py)

//restored from v11 backup

switched to 11
dropped site
created new-site
turned on developer mode
installed erpnext on the site
switched to 11
dropped db
restored db
fetched the custom apps
migrated
restarted bench
reloaded nginx
update bench
change admin pwd

//updated to v12

switched to 12
ran bench run-patch erpnext.patches.v12_0.make_item_manufacturer
switched to 12
restarted bench
reloaded nginx
updated bench

1 Like

@Vinob_chander_Ramasw,

How do we fetch custom apps?

1 Like

Please share the command syntax as we are little new to ERPnext

Thank you in advance .

1 Like

@Vinob_chander_Ramasw , Thats a feat, restoring to v12 from previous database backups. Please share a detailed document, with clear steps for the mutual benefit of the community.

1 Like