"DocType Subscription Plan Detail not found" when bench migrate

Hello, I just installed a fresh version of ERPNext and restored from a backup. I did bench migrate and I get these error messages :

 Executing erpnext.patches.v9_0.fix_subscription_next_date #2017-10-23 in site1.local (_8e62d73f722067cc)
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/erpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
    main()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/erpnext/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/erpnext/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/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/erpnext/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/erpnext/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 25, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/commands/site.py", line 233, in migrate
    migrate(context.verbose, rebuild_website=rebuild_website, skip_failing=skip_failing)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/migrate.py", line 48, in migrate
    frappe.modules.patch_handler.run_all(skip_failing)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 41, in run_all
    run_patch(patch)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 30, in run_patch
    if not run_single(patchmodule = patch):
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 71, in run_single
    return execute_patch(patchmodule, method, methodargs)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/modules/patch_handler.py", line 91, in execute_patch
    frappe.get_attr(patchmodule.split()[0] + ".execute")()
  File "/home/erpnext/frappe-bench/apps/erpnext/erpnext/patches/v9_0/fix_subscription_next_date.py", line 21, in execute
    filters = {'reference_doctype': ('in', doctypes), 'docstatus': 1}):
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 1305, in get_all
    return get_list(doctype, *args, **kwargs)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 1278, in get_list
    return frappe.model.db_query.DatabaseQuery(doctype).execute(None, *args, **kwargs)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 96, in execute
    result = self.build_and_run()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 110, in build_and_run
    args = self.prepare_args()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 137, in prepare_args
    self.build_conditions()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 329, in build_conditions
    self.build_filter_conditions(self.filters, self.conditions)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 350, in build_filter_conditions
    conditions.append(self.prepare_filter_condition(f))
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/db_query.py", line 357, in prepare_filter_condition
    f = get_filter(self.doctype, f)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/utils/data.py", line 917, in get_filter
    if frappe.get_meta(df.options).has_field(f.fieldname):
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 765, in get_meta
    return frappe.model.meta.get_meta(doctype, cached=cached)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/meta.py", line 37, in get_meta
    meta = Meta(doctype)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/meta.py", line 83, in __init__
    super(Meta, self).__init__("DocType", doctype)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py", line 105, in __init__
    self.load_from_db()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/meta.py", line 88, in load_from_db
    super(Meta, self).load_from_db()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py", line 148, in load_from_db
    frappe.throw(_("{0} {1} not found").format(_(self.doctype), self.name), frappe.DoesNotExistError)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 364, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red')
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 350, in msgprint
    _raise_exception()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 316, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.DoesNotExistError: DocType Subscription Plan Detail not found

I tried bench reload-doctype “Subscription” and got this :

 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/erpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
    main()
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/erpnext/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/erpnext/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/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/erpnext/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/erpnext/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 25, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/commands/site.py", line 279, in reload_doctype
    frappe.reload_doctype(doctype, force=context.force)
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 792, in reload_doctype
    reload_doc(scrub(db.get_value("DocType", doctype, "module")), "doctype", scrub(doctype),
  File "/home/erpnext/frappe-bench/apps/frappe/frappe/__init__.py", line 818, in scrub
    return txt.replace(' ','_').replace('-', '_').lower()
AttributeError: 'NoneType' object has no attribute 'replace'

Please send help!

Was the backup from the same version as the fresh install? What was the command used to restore the backup?

bench update --patch and bench update --reset could be tried.

I believe it was from v10.something. This is what I used to restore :

bench --site [sitename] --force restore [path to database backup file]

I tried the two commands and still get the same error

10 to 12 might be a leap too far, especially is there have been customizations. I was hoping @bkm would chime in on this one. If a clean install of 10 can be accomplished, maybe try upgrading that in place with data restored?

It was actually erpnext 9.1.3 and frappe 9.1.5

I still have a VM running with the old version so it’s not like I’m stuck with nothing here. Would upgrading 1 version at a time be better? Like, v9 => v10 then v10=>v11, etc. Is that even possible?

I haven’t looked but are older versions still available? I’ll do my own research but if anyone has a clue it is appreciated.

Thanks!

I was wondering, if I can find older versions of the VM I could then restore from v9 to v10 to v11 etc? It turns out that installing older versions is pretty complicated to a novice like myself but with an old .ova it’s easy.

Any thoughts?

Well, I could make it work… I exported everything with “Data Import / Export” on v9 and imported everything with “Data Import” on v12. There were some minor errors but it’s all done now. Thankfully I don’t a large operation so it didn’t take to much time.

Way less time than what I wasted trying to restore the backup in fact…