我正在创建一个脚本,它将同步两个数据库。数据库中有一个数据应该存储为树,所以我将django-mptt用于新数据库。当我同步数据库时,我从旧数据库中选择新数据并将其保存在新数据库中。
我想知道是否有更好的方法将新节点添加到树中?现在它看起来下一个方式:
...
# Add new data to DB
for new_record in new_records:
# Find appropriate parent using data in 'new_record'
parent = get_parent(new_record)
# Create object which should be added using data in 'new_record'
new_node = MyMPTTModel(...)
new_node.insert_at(parent, save = True)
# Similar to:
# new_node.insert_at(parent, save = False)
# new_node.save()
但它的工作非常缓慢。我认为它以这种方式工作,因为在每次调用该insert_at(..., save = True)
方法后,都django-mptt
应该将新节点写入数据库并修改数据库中已经存在的记录的键 left
。right
有没有办法在django-mptt
我每次打电话时修改查询insert_at
,然后在我打电话时一起应用所有更改save
?或者您知道如何减少执行时间的其他方法吗?
提前致谢。