/erpnext/patches/v12_0/update_pricing_rule_fields.py

Anyone stuck in a situation detailed below?

Receiving:
pymysql.err.InternalError: (1054, “Unknown column ‘pricing_rules’ in ‘field list’”)

during
bench update --patch

after a version12 upgrade during which we received a PyYAML version error but after upgrade ran:
pip install PyYAML==3.13

Environment:
erpnext 12.0.0
frappe 12.0.0

@lams has same traceback

I Have the same problem
Error
pymysql.err.InternalError: (1054, “Unknown column ‘pricing_rules’ in ‘field list’”)
frappe@erpnext:~/frappe-bench$ bench update --patch
Backing up sites…
Patching sites…
Migrating site1.local
Executing erpnext.patches.v12_0.update_pricing_rule_fields 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/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 97, 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.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 234, 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/erpnext/erpnext/patches/v12_0/update_pricing_rule_fields.py”, line 33, in execute
“”".format(child_doctype= child_doctype))
File “/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py”, line 171, in sql
self._cursor.execute(query)
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/cursors.py”, line 328, in _query
conn.query(q)
File “/home/frappe/frappe-bench/env/lib/python3.6/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.6/site-packages/pymysql/connections.py”, line 732, in _read_query_result
result.read()
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/connections.py”, line 684, in _read_packet
packet.check_error()
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/protocol.py”, line 220, in check_error
err.raise_mysql_exception(self._data)
File “/home/frappe/frappe-bench/env/lib/python3.6/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1054, “Unknown column ‘pricing_rules’ in ‘field list’”)

frappe@erpnext:~/frappe-bench$ pip install PyYAML==3.13
-bash: /home/frappe/.local/bin/pip: No such file or directory

@yasserelbana

/home/frappe/.local/bin is not user account frappe’s PATH. This post explains the problem and fix

1 Like

I guess line#42 in /home/frappe/bench/apps/erpnext/erpnext/patches/v12_0/update_pricing_rule_fields.py is somehow buggy!

The line has a string called pricing_rule as parameter as all others are pointers. The GitHub user rohitwaghchaure is responsible for this. Can anyone reach out to him?

Please report the problem here Issues · frappe/erpnext · GitHub

Be sure to link to this discussion here and a link here to the reported issue

GitHub Issue opened

I noted on github

today I have same error. Error migrate Items table don’t have pricing_rules field.

I try to skip this step by edit this file:
apps/erpnext/erpnext/patches/v12_0/update_pricing_rule_fields.py
set
doctypes = {} or return do not run this patch

run
bench migrate

after run success restore update_pricing_rule_fields.py then run

bench --site [sitename] run-patch erpnext.patches.v12_0.update_pricing_rule_fields

4 Likes

Big thanks for you @vinhnguyent090
this working very well
thank you
you are saving my life

1 Like

That is good to run a script without error but are we skipping the update routine or this update script is useless altogether? Why isn’t it working in the first run?

I check my case.

It error not reload doc “tabPurchase Order Item” child table => pricing_rules is not found
=> When I skip this patch and I check this child table update well (this child table have pricing_rules field).
=> I run again this patch and It run.

Thanks for the solution. It seems to work and allows to proceed with update from V11 to V12. I am left however with an error - every time I hover on an item or try to click on an item - I get the following message:

InternalError: (1054, u"Unknown column ‘317f1457ae’ in ‘field list’")

Will appreciate any insight on how to resolve. Thanks.

Hi

InternalError: (1054, u"Unknown column ‘317f1457ae’ in ‘field list’")

=> I have this error too.
=> I can’t not find the root error.
=> temp solution create “317f1457ae” by customize field. then delete it.

Hi. I tried that - created a custom field 317f1457ae for doctype Item. Then deleted it. When I go back to item - it gives error - with a different column number.

Actually resolved it by creating a manufacturer (same as supplier) for the item. Likely - during upgrade to v12 may have applied manufacturer item patch to this site - though error was reported to another site…

1 Like