Skip to content

Commit 89fb398

Browse files
Merge pull request #99 from pitangainnovare/impl/optimize-db-usage
Otimiza uso do banco de dados na tradução e indexação de dados
2 parents ab483c2 + 87cd12e commit 89fb398

12 files changed

Lines changed: 444 additions & 98 deletions

File tree

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.10.0
1+
1.11.0
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 5.0.7 on 2025-06-12 17:16
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("article", "0002_alter_article_unique_together_article_files_and_more"),
10+
("collection", "0001_initial"),
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
]
13+
14+
operations = [
15+
migrations.AddIndex(
16+
model_name="article",
17+
index=models.Index(
18+
fields=["collection", "scielo_issn"], name="collection_scielo_issn_idx"
19+
),
20+
),
21+
]

article/models.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def metadata(cls, collection=None):
114114

115115
for a in qs.iterator():
116116
yield {
117+
'id': a.id,
117118
'collection': a.collection.acron3,
118119
'default_lang': a.default_lang,
119120
'files': a.files,
@@ -137,3 +138,7 @@ class Meta:
137138
'pid_v3',
138139
'pid_generic',
139140
)
141+
indexes = [
142+
models.Index(fields=['collection', 'scielo_issn'], name='collection_scielo_issn_idx'),
143+
]
144+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 5.0.7 on 2025-06-12 17:16
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("journal", "0001_initial"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="journal",
14+
name="scielo_issn",
15+
field=models.CharField(
16+
db_index=True, max_length=9, verbose_name="SciELO ISSN"
17+
),
18+
),
19+
]

journal/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ class Journal(CommonControlField):
1212
on_delete=models.CASCADE,
1313
blank=False,
1414
null=False,
15+
db_index=True,
1516
)
1617

1718
scielo_issn = models.CharField(
1819
verbose_name=_('SciELO ISSN'),
1920
max_length=9,
2021
blank=False,
2122
null=False,
23+
db_index=True,
2224
)
2325

2426
issns = models.JSONField(
@@ -78,6 +80,7 @@ def metadata(cls, collection=None):
7880
'scielo_issn', 'subject_areas', 'title', 'wos_subject_areas'
7981
):
8082
yield {
83+
'id': journal.id,
8184
'acronym': journal.acronym,
8285
'collection': journal.collection.acron3,
8386
'issns': set([v for v in journal.issns.values() if v]),
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Generated by Django 5.0.7 on 2025-06-12 17:16
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("log_manager", "0004_logfile_validation"),
10+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name="logfile",
16+
name="status",
17+
field=models.CharField(
18+
choices=[
19+
("CRE", "Created"),
20+
("QUE", "Queued"),
21+
("PAR", "Parsing"),
22+
("PRO", "Processed"),
23+
("INV", "Invalidated"),
24+
("IGN", "Ignored"),
25+
],
26+
max_length=3,
27+
verbose_name="Status",
28+
),
29+
),
30+
migrations.AlterField(
31+
model_name="logfiledate",
32+
name="date",
33+
field=models.DateField(db_index=True, verbose_name="Date"),
34+
),
35+
migrations.AddIndex(
36+
model_name="logfiledate",
37+
index=models.Index(
38+
fields=["date", "log_file"], name="log_manager_date_32b410_idx"
39+
),
40+
),
41+
]

log_manager/models.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ class LogFileDate(CommonControlField):
1919
verbose_name=_("Date"),
2020
null=False,
2121
blank=False,
22+
db_index=True,
2223
)
2324

2425
log_file = models.ForeignKey(
2526
'LogFile',
2627
verbose_name=_('Log File'),
2728
blank=True,
2829
on_delete=models.DO_NOTHING,
30+
db_index=True,
2931
)
3032

3133
base_form_class = CoreAdminModelForm
@@ -43,6 +45,9 @@ class Meta:
4345
'date',
4446
'log_file',
4547
)
48+
indexes = [
49+
models.Index(fields=['date', 'log_file']),
50+
]
4651

4752
@classmethod
4853
def create_or_update(cls, user, log_file, date):

log_manager/tasks.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import os
44

55
from django.conf import settings
6-
from django.core.serializers.json import DjangoJSONEncoder
76
from django.core.mail import send_mail
87
from django.contrib.auth import get_user_model
98
from django.utils.translation import gettext as _
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 5.0.7 on 2025-06-12 17:16
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("metrics", "0006_alter_itemaccess_content_type"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="usersession",
14+
name="datetime",
15+
field=models.DateTimeField(db_index=True, verbose_name="Datetime"),
16+
),
17+
migrations.AddIndex(
18+
model_name="itemaccess",
19+
index=models.Index(
20+
fields=["item", "user_session"], name="metrics_ite_item_id_8799c9_idx"
21+
),
22+
),
23+
]

metrics/models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class UserSession(models.Model):
8989
verbose_name=_("Datetime"),
9090
null=False,
9191
blank=False,
92+
db_index=True,
9293
)
9394

9495
user_agent = models.ForeignKey(
@@ -208,3 +209,6 @@ class Meta:
208209
'media_language',
209210
'content_type',
210211
)
212+
indexes = [
213+
models.Index(fields=['item', 'user_session']),
214+
]

0 commit comments

Comments
 (0)