Merge pull request #13180 from alyf-de/fix_migrate_tree
fix: Ignore "lft" and "rgt" when importing/exporting fixtures
This commit is contained in:
commit
ed5ca19233
2 changed files with 15 additions and 1 deletions
|
|
@ -211,7 +211,12 @@ def export_json(
|
|||
doctype, path, filters=None, or_filters=None, name=None, order_by="creation asc"
|
||||
):
|
||||
def post_process(out):
|
||||
del_keys = ("modified_by", "creation", "owner", "idx")
|
||||
# Note on Tree DocTypes:
|
||||
# The tree structure is maintained in the database via the fields "lft"
|
||||
# and "rgt". They are automatically set and kept up-to-date. Importing
|
||||
# them would destroy any existing tree structure. For this reason they
|
||||
# are not exported as well.
|
||||
del_keys = ("modified_by", "creation", "owner", "idx", "lft", "rgt")
|
||||
for doc in out:
|
||||
for key in del_keys:
|
||||
if key in doc:
|
||||
|
|
|
|||
|
|
@ -107,6 +107,15 @@ def import_doc(docdict, force=False, data_import=False, pre_process=None,
|
|||
|
||||
doc = frappe.get_doc(docdict)
|
||||
|
||||
# Note on Tree DocTypes:
|
||||
# The tree structure is maintained in the database via the fields "lft" and
|
||||
# "rgt". They are automatically set and kept up-to-date. Importing them
|
||||
# would destroy any existing tree structure.
|
||||
if getattr(doc.meta, 'is_tree', None) and any([doc.lft, doc.rgt]):
|
||||
print('Ignoring values of `lft` and `rgt` for {} "{}"'.format(doc.doctype, doc.name))
|
||||
doc.lft = None
|
||||
doc.rgt = None
|
||||
|
||||
doc.run_method("before_import")
|
||||
|
||||
doc.flags.ignore_version = ignore_version
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue