Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restoring a v13 backup into v14 throws error #26376

Open
barredterra opened this issue May 8, 2024 · 0 comments
Open

Restoring a v13 backup into v14 throws error #26376

barredterra opened this issue May 8, 2024 · 0 comments
Labels

Comments

@barredterra
Copy link
Collaborator

Description of the issue

Restoring a v13 backup into v14 throws error.

Context information (for bug reports)

Output of bench version

erpnext 14.69.0
frappe 14.74.0

Steps to reproduce the issue

  1. Download a DB backup from a v13 instance
  2. Restore the backup into a v14 instance

Observed result

Below error message

Expected result

No error message

Stacktrace / full error message

bench restore ~/Downloads/my-erpnext-database.sql.gz
MySQL root password: 
App frappe already installed
  File "/path/to/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/path/to/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in <module>
    main()
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name="bench")
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/__init__.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/site.py", line 199, in restore
    _new_site(
  File "frappe-bench/apps/frappe/frappe/installer.py", line 108, in _new_site
    scheduler.toggle_scheduler(enable_scheduler)
  File "frappe-bench/apps/frappe/frappe/utils/scheduler.py", line 141, in toggle_scheduler
    frappe.db.set_single_value("System Settings", "enable_scheduler", int(enable))
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 835, in set_single_value
    return self.set_value(doctype, doctype, fieldname, value, *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 985, in set_value
    modified = modified or now()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 370, in now
    return now_datetime().strftime(DATETIME_FORMAT)
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 303, in now_datetime
    dt = convert_utc_to_system_timezone(datetime.datetime.utcnow())
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 350, in convert_utc_to_system_timezone
    time_zone = get_system_timezone()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 324, in get_system_timezone
    return frappe.cache().get_value("time_zone", _get_system_timezone)
  File "frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 81, in get_value
    val = generator()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 317, in _get_system_timezone
    return frappe.db.get_system_setting("time_zone") or "Asia/Kolkata"  # Default to India ?!
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 1297, in get_system_setting
    return frappe.get_system_settings(key)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 2286, in get_system_settings
    local.system_settings = get_cached_doc("System Settings")
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1109, in get_cached_doc
    doc = get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1200, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 78, in get_doc
    return controller(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 137, in load_from_db
    if not getattr(self, "_metaclass", False) and self.meta.issingle:
  File "/path/to/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)
  File "frappe-bench/apps/frappe/frappe/model/base_document.py", line 129, in meta
    return frappe.get_meta(self.doctype)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1227, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 65, in get_meta
    meta = Meta(doctype)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 119, in __init__
    super().__init__("DocType", doctype)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 125, in load_from_db
    super().load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 167, in load_from_db
    frappe.db.get_values(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 672, in get_values
    out = self._get_values_from_table(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 910, in _get_values_from_table
    return query.run(as_dict=as_dict, debug=debug, update=update, run=run, pluck=pluck)
  File "frappe-bench/apps/frappe/frappe/query_builder/utils.py", line 87, in execute_query
    result = frappe.db.sql(query, params, *args, **kwargs)  # nosemgrep
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 272, in sql
    traceback.print_stack()
Error in query:
('SELECT * FROM `tabDocType State` WHERE `parent`=%(param1)s AND `parenttype`=%(param2)s AND `parentfield`=%(param3)s ORDER BY `idx` ASC', {'param1': 'System Settings', 'param2': 'DocType', 'param3': 'states'})
  File "/path/to/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/path/to/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in <module>
    main()
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name="bench")
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/__init__.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/site.py", line 199, in restore
    _new_site(
  File "frappe-bench/apps/frappe/frappe/installer.py", line 108, in _new_site
    scheduler.toggle_scheduler(enable_scheduler)
  File "frappe-bench/apps/frappe/frappe/utils/scheduler.py", line 141, in toggle_scheduler
    frappe.db.set_single_value("System Settings", "enable_scheduler", int(enable))
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 835, in set_single_value
    return self.set_value(doctype, doctype, fieldname, value, *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 985, in set_value
    modified = modified or now()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 370, in now
    return now_datetime().strftime(DATETIME_FORMAT)
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 303, in now_datetime
    dt = convert_utc_to_system_timezone(datetime.datetime.utcnow())
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 350, in convert_utc_to_system_timezone
    time_zone = get_system_timezone()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 324, in get_system_timezone
    return frappe.cache().get_value("time_zone", _get_system_timezone)
  File "frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 81, in get_value
    val = generator()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 317, in _get_system_timezone
    return frappe.db.get_system_setting("time_zone") or "Asia/Kolkata"  # Default to India ?!
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 1297, in get_system_setting
    return frappe.get_system_settings(key)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 2286, in get_system_settings
    local.system_settings = get_cached_doc("System Settings")
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1109, in get_cached_doc
    doc = get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1200, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 78, in get_doc
    return controller(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 137, in load_from_db
    if not getattr(self, "_metaclass", False) and self.meta.issingle:
  File "/path/to/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)
  File "frappe-bench/apps/frappe/frappe/model/base_document.py", line 129, in meta
    return frappe.get_meta(self.doctype)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1227, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 65, in get_meta
    meta = Meta(doctype)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 121, in __init__
    self.process()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 145, in process
    self.add_custom_links_and_actions()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 417, in add_custom_links_and_actions
    for d in frappe.get_all(
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1938, in get_all
    return get_list(doctype, *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1910, in get_list
    return frappe.model.db_query.DatabaseQuery(doctype).execute(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 190, in execute
    result = self.build_and_run()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 205, in build_and_run
    args = self.prepare_args()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 245, in prepare_args
    self.build_conditions()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 585, in build_conditions
    self.build_filter_conditions(self.filters, self.conditions)
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 606, in build_filter_conditions
    conditions.append(self.prepare_filter_condition(f))
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 729, in prepare_filter_condition
    f = get_filter(self.doctype, f, additional_filters_config)
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 1845, in get_filter
    df = frappe.get_meta(f.doctype).get_field(f.fieldname)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1227, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 65, in get_meta
    meta = Meta(doctype)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 119, in __init__
    super().__init__("DocType", doctype)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 125, in load_from_db
    super().load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 167, in load_from_db
    frappe.db.get_values(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 672, in get_values
    out = self._get_values_from_table(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 910, in _get_values_from_table
    return query.run(as_dict=as_dict, debug=debug, update=update, run=run, pluck=pluck)
  File "frappe-bench/apps/frappe/frappe/query_builder/utils.py", line 87, in execute_query
    result = frappe.db.sql(query, params, *args, **kwargs)  # nosemgrep
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 272, in sql
    traceback.print_stack()
Error in query:
('SELECT * FROM `tabDocType State` WHERE `parent`=%(param1)s AND `parenttype`=%(param2)s AND `parentfield`=%(param3)s ORDER BY `idx` ASC', {'param1': 'DocType Link', 'param2': 'DocType', 'param3': 'states'})
  File "/path/to/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/path/to/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in <module>
    main()
  File "frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name="bench")
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/__init__.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/commands/site.py", line 199, in restore
    _new_site(
  File "frappe-bench/apps/frappe/frappe/installer.py", line 108, in _new_site
    scheduler.toggle_scheduler(enable_scheduler)
  File "frappe-bench/apps/frappe/frappe/utils/scheduler.py", line 141, in toggle_scheduler
    frappe.db.set_single_value("System Settings", "enable_scheduler", int(enable))
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 835, in set_single_value
    return self.set_value(doctype, doctype, fieldname, value, *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 985, in set_value
    modified = modified or now()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 370, in now
    return now_datetime().strftime(DATETIME_FORMAT)
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 303, in now_datetime
    dt = convert_utc_to_system_timezone(datetime.datetime.utcnow())
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 350, in convert_utc_to_system_timezone
    time_zone = get_system_timezone()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 324, in get_system_timezone
    return frappe.cache().get_value("time_zone", _get_system_timezone)
  File "frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 81, in get_value
    val = generator()
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 317, in _get_system_timezone
    return frappe.db.get_system_setting("time_zone") or "Asia/Kolkata"  # Default to India ?!
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 1297, in get_system_setting
    return frappe.get_system_settings(key)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 2286, in get_system_settings
    local.system_settings = get_cached_doc("System Settings")
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1109, in get_cached_doc
    doc = get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1200, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 78, in get_doc
    return controller(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 137, in load_from_db
    if not getattr(self, "_metaclass", False) and self.meta.issingle:
  File "/path/to/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)
  File "frappe-bench/apps/frappe/frappe/model/base_document.py", line 129, in meta
    return frappe.get_meta(self.doctype)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1227, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 65, in get_meta
    meta = Meta(doctype)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 121, in __init__
    self.process()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 145, in process
    self.add_custom_links_and_actions()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 417, in add_custom_links_and_actions
    for d in frappe.get_all(
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1938, in get_all
    return get_list(doctype, *args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1910, in get_list
    return frappe.model.db_query.DatabaseQuery(doctype).execute(*args, **kwargs)
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 190, in execute
    result = self.build_and_run()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 205, in build_and_run
    args = self.prepare_args()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 245, in prepare_args
    self.build_conditions()
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 585, in build_conditions
    self.build_filter_conditions(self.filters, self.conditions)
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 606, in build_filter_conditions
    conditions.append(self.prepare_filter_condition(f))
  File "frappe-bench/apps/frappe/frappe/model/db_query.py", line 729, in prepare_filter_condition
    f = get_filter(self.doctype, f, additional_filters_config)
  File "frappe-bench/apps/frappe/frappe/utils/data.py", line 1845, in get_filter
    df = frappe.get_meta(f.doctype).get_field(f.fieldname)
  File "frappe-bench/apps/frappe/frappe/__init__.py", line 1227, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 65, in get_meta
    meta = Meta(doctype)
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 119, in __init__
    super().__init__("DocType", doctype)
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 110, in __init__
    self.load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/meta.py", line 125, in load_from_db
    super().load_from_db()
  File "frappe-bench/apps/frappe/frappe/model/document.py", line 167, in load_from_db
    frappe.db.get_values(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 672, in get_values
    out = self._get_values_from_table(
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 910, in _get_values_from_table
    return query.run(as_dict=as_dict, debug=debug, update=update, run=run, pluck=pluck)
  File "frappe-bench/apps/frappe/frappe/query_builder/utils.py", line 87, in execute_query
    result = frappe.db.sql(query, params, *args, **kwargs)  # nosemgrep
  File "frappe-bench/apps/frappe/frappe/database/database.py", line 272, in sql
    traceback.print_stack()
Error in query:
('SELECT * FROM `tabDocType State` WHERE `parent`=%(param1)s AND `parenttype`=%(param2)s AND `parentfield`=%(param3)s ORDER BY `idx` ASC', {'param1': 'DocType Action', 'param2': 'DocType', 'param3': 'states'})
my-erpnext: SystemSettings.enable_scheduler is UNSET
*** Scheduler is disabled ***
Site my-erpnext has been restored

Additional information

MacOS, manual installation

@barredterra barredterra added the bug label May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant