1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# coding: utf-8
from django.db import transaction
from models import Node, NodeType
from django.contrib.auth.models import User
from time import time
print(time())
# In[9]:
NodeType.objects.all().delete()
nodeTypeRoot = NodeType(name="Root")
nodeTypeRoot.save()
nodeTypeProject = NodeType(name="Project")
nodeTypeProject.save()
nodeTypeDocument = NodeType(name="Document")
nodeTypeDocument.save()
#number_userIndex = 100
#number_projectIndex = 50
#number_documentIndex = 10000
number_userIndex = 10
number_projectIndex = 5
number_documentIndex = 100
# In[ ]:
Node.objects.all().delete()
User.objects.filter(username__startswith = "User #").delete()
t0 = time()
with transaction.atomic():
for userIndex in range(number_userIndex):
userName = 'User #%d' % (userIndex, )
user = User(username=userName)
user.save()
rootNode = Node.add_root(name=userName, type_id=nodeTypeRoot.pk, user_id=user.id)
print(userName)
for projectIndex in range(number_projectIndex):
projectName = 'Project #%d-%d' % (userIndex, projectIndex, )
projectNode = Node(name=projectName, type_id=nodeTypeProject.pk, user_id=user.id)
rootNode.add_child(instance=projectNode)
documents = [
{"data": {"name":'Document #%d-%d-%d' % (userIndex, projectIndex, documentIndex, ), "type_id":nodeTypeDocument.pk, "user_id":user.id}}
for documentIndex in range(number_documentIndex)
]
Node.load_bulk(documents, projectNode)
print(time() - t0)
# In[37]:
for node in Node.objects.all():
print(node.name)
#