frappe.exceptions.ValidationError: Fieldtype cannot be changed from Data to Currency

Executing erpnext.patches.v13_0.check_is_income_tax_component #22-06-2020 in erp.suttati.com (_c7f2ea9c02fb57eb)
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 104, in
main()
File “/home/erpnext/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 19, in main
click.Group(commands=commands)(prog_name=‘bench’)
File “/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 829, in call
return self.main(*args, **kwargs)
File “/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 782, in main
rv = self.invoke(ctx)
File “/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 1259, 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 1259, 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 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/core.py”, line 610, in invoke
return callback(*args, **kwargs)
File “/home/erpnext/frappe-bench/env/lib/python3.6/site-packages/click/decorators.py”, line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/commands/init.py”, line 27, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/commands/site.py”, line 309, in migrate
skip_search_index=skip_search_index
File “/home/erpnext/frappe-bench/apps/frappe/frappe/migrate.py”, line 67, 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/v13_0/check_is_income_tax_component.py”, line 31, in execute
setup(patch=True)
File “/home/erpnext/frappe-bench/apps/erpnext/erpnext/regional/india/setup.py”, line 15, in setup
setup_company_independent_fixtures(patch=patch)
File “/home/erpnext/frappe-bench/apps/erpnext/erpnext/regional/india/setup.py”, line 21, in setup_company_independent_fixtures
make_custom_fields()
File “/home/erpnext/frappe-bench/apps/erpnext/erpnext/regional/india/setup.py”, line 673, in make_custom_fields
create_custom_fields(custom_fields, update=update)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 169, in create_custom_fields
custom_field.save()
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 284, in save
return self._save(*args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 319, in save
self.run_before_save_methods()
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 960, in run_before_save_methods
self.run_method(“validate”)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 858, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 1147, in composer
return composed(self, method, *args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 1130, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/erpnext/frappe-bench/apps/frappe/frappe/model/document.py”, line 852, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/custom/doctype/custom_field/custom_field.py”, line 58, in validate
frappe.throw(
(“Fieldtype cannot be changed from {0} to {1}”).format(old_fieldtype, self.fieldtype))
File “/home/erpnext/frappe-bench/apps/frappe/frappe/init.py”, line 432, in throw
msgprint(msg, raise_exception=exc, title=title, indicator=‘red’, is_minimizable=is_minimizable, wide=wide, as_list=as_list)
File “/home/erpnext/frappe-bench/apps/frappe/frappe/init.py”, line 411, in msgprint
_raise_exception()
File “/home/erpnext/frappe-bench/apps/frappe/frappe/init.py”, line 365, in _raise_exception
raise raise_exception(msg)
frappe.exceptions.ValidationError: Fieldtype cannot be changed from Data to Currency

Were you able to find a solution to this?

I am also facing the same problem while upgrading from v12 to v13.
Any help or suggestion would be really helpful

I have also create github issue for the same frappe.exceptions.ValidationError: Fieldtype cannot be changed from Data to Currency · Issue #27075 · frappe/erpnext · GitHub

@njbhatt18

Hi, Please check below link if any useful - suggestion by Mr. Amit Saxena.

I have executed all 4 sql queries but still same error

i could not solve, hence i reinstalled

What happens with the existing data? I can’t lose data so can you please share steps or commands which can do reinstallation without data loss?

This has been fixed in the develop branch, here is the PR fix: patches were breaking while migrating by shadrak98 · Pull Request #27195 · frappe/erpnext · GitHub.

To solve this issue in your local, you need to reorder this patch erpnext.patches.v12_0.create_itc_reversal_custom_fields in patches.txt as in the PR.

1 Like