Browse Source

Merge pull request #13180 from alyf-de/fix_migrate_tree

fix: Ignore "lft" and "rgt" when importing/exporting fixtures
version-14
mergify[bot] 4 years ago
committed by GitHub
parent
commit
ed5ca19233
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions
  1. +6
    -1
      frappe/core/doctype/data_import/data_import.py
  2. +9
    -0
      frappe/modules/import_file.py

+ 6
- 1
frappe/core/doctype/data_import/data_import.py View File

@@ -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:


+ 9
- 0
frappe/modules/import_file.py View File

@@ -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…
Cancel
Save