2018-07-02 - bench update --reset fails

This relates to Clean Production Install errors. I get the same error after running bench update --reset:

NFO:bench.utils:./env/bin/pip install -q -r ./apps/foundation/requirements.txt
Could not find a version that satisfies the requirement frappe_theme (from -r ./apps/foundation/requirements.txt (line 2)) (from versions: )
No matching distribution found for frappe_theme (from -r ./apps/foundation/requirements.txt (line 2))
Traceback (most recent call last):
File “/usr/local/frappe_prd/bin/bench”, line 11, in
load_entry_point(‘bench’, ‘console_scripts’, ‘bench’)()
File “/usr/local/frappe_prd/bench-repo/bench/cli.py”, line 40, in cli
bench_command()
File “/usr/local/frappe_prd/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/usr/local/frappe_prd/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/usr/local/frappe_prd/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/frappe_prd/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/frappe_prd/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/usr/local/frappe_prd/bench-repo/bench/commands/update.py”, line 60, in update
_update(pull, patch, build, bench, auto, restart_supervisor, restart_systemd, requirements, no_backup, force=force, reset=reset)
File “/usr/local/frappe_prd/bench-repo/bench/commands/update.py”, line 76, in _update
update_requirements(bench_path=bench_path)
File “/usr/local/frappe_prd/bench-repo/bench/utils.py”, line 435, in update_requirements
install_requirements(pip, req_file)
File “/usr/local/frappe_prd/bench-repo/bench/utils.py”, line 499, in install_requirements
exec_cmd("{pip} install -q -r {req_file}".format(pip=pip, req_file=req_file))
File “/usr/local/frappe_prd/bench-repo/bench/utils.py”, line 159, in exec_cmd
raise CommandFailedError(cmd)
bench.utils.CommandFailedError: ./env/bin/pip install -q -r ./apps/foundation/requirements.txt

It is not clear from the above link, where the relative link “erpnext” is to be located.
Previous updates worked fine, so this is a bit of a bummer.
Kindly advise.
Chris

So you’re back again :slight_smile:

I saw this that may help I am facing this error on bench update --reset

This has encouraged me to give ERPNext another spin. :slight_smile:
This worked to resolve the requirements.txt issue, thank you.
Running the master branch, I now get:

[…]
added 361 packages from 225 contributors in 10.29s
[+] no known vulnerabilities found [2626 packages audited]

Backing up sites…
Patching sites…
Migrating erpnext.caocuero.com
Executing execute:frappe.reload_doc(‘core’, ‘doctype’, ‘docperm’) #2017-03-03 in erpnext.caocuero.com (frappe_cc_prd)
Traceback (most recent call last):
File “/usr/local/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/local/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 94, in
main()
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 18, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/commands/init.py”, line 24, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/commands/site.py”, line 222, in migrate
migrate(context.verbose, rebuild_website=rebuild_website)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/migrate.py”, line 31, in migrate
frappe.modules.patch_handler.run_all()
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 29, in run_all
if not run_single(patchmodule = patch):
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 63, in run_single
return execute_patch(patchmodule, method, methodargs)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/patch_handler.py”, line 81, in execute_patch
exec(patchmodule.split(“execute:”)[1],globals())
File “”, line 1, in
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/init.py”, line 695, in reload_doc
return frappe.modules.reload_doc(module, dt, dn, force=force, reset_permissions=reset_permissions)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/utils.py”, line 155, in reload_doc
return import_files(module, dt, dn, force=force, reset_permissions=reset_permissions)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 19, in import_files
reset_permissions=reset_permissions)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 24, in import_file
ret = import_file_by_path(path, force, pre_process=pre_process, reset_permissions=reset_permissions)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 58, in import_file_by_path
ignore_version=ignore_version, reset_permissions=reset_permissions)
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/modules/import_file.py”, line 132, in import_doc
doc.insert()
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/model/document.py”, line 240, in insert
d.db_insert()
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 303, in db_insert
), list(d.values()))
File “/usr/local/frappe_prd/frappe-bench/apps/frappe/frappe/database.py”, line 166, in sql
self._cursor.execute(query, values)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 328, in _query
conn.query(q)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/connections.py”, line 893, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/connections.py”, line 1103, in _read_query_result
result.read()
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/connections.py”, line 1396, in read
first_packet = self.connection._read_packet()
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/connections.py”, line 1059, in _read_packet
packet.check_error()
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/connections.py”, line 384, in check_error
err.raise_mysql_exception(self._data)
File “/usr/local/frappe_prd/frappe-bench/env/lib/python2.7/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.IntegrityError: (1048, u"Column ‘translatable’ cannot be null")

Seems the database migration is missing something here - any ideas? Thank you!

Chris

Sure try these 8 clues https://discuss.erpnext.com/search?q=pymysql.err.IntegrityError%3A%20(1048%2C%20u%22Column%20%E2%80%98translatable%E2%80%99%20cannot%20be%20null

This is, quite frankly, not a reliable enough upgrade path for my taste, as the system may well be loaded with valuable data. Of course, we do the upgrade in a staging environment, but it should be smooth, provided there are no user-initiated code changes.
Trying to love ERPNext despite such hassles, I then decided to skip the default develop branch (all in production mode, of course). Not much luck there - see different post.

“the system may well be loaded with valuable data”

Yes to check table row counts makes perfect sense to spot problems.