diff --git a/swh/web/common/migrations/0008_save-code-now_indexes_20210106_1327.py b/swh/web/common/migrations/0008_save-code-now_indexes_20210106_1327.py new file mode 100644 index 00000000..70de0789 --- /dev/null +++ b/swh/web/common/migrations/0008_save-code-now_indexes_20210106_1327.py @@ -0,0 +1,29 @@ +# Generated by Django 2.2.15 on 2021-01-06 13:27 + +# Adds indexes to the Save Code Now tables. + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("swh.web.common", "0007_save_request_task_status_fix_typo"), + ] + + operations = [ + migrations.AddIndex( + model_name="saveauthorizedorigin", + index=models.Index(fields=["url"], name="save_author_url_3e4e9d_idx"), + ), + migrations.AddIndex( + model_name="saveoriginrequest", + index=models.Index( + fields=["origin_url", "status"], name="save_origin_origin__b46350_idx" + ), + ), + migrations.AddIndex( + model_name="saveunauthorizedorigin", + index=models.Index(fields=["url"], name="save_unauth_url_c008fc_idx"), + ), + ] diff --git a/swh/web/common/models.py b/swh/web/common/models.py index f2d21a80..9c76f5ae 100644 --- a/swh/web/common/models.py +++ b/swh/web/common/models.py @@ -1,99 +1,102 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from django.db import models class SaveAuthorizedOrigin(models.Model): """ Model table holding origin urls authorized to be loaded into the archive. """ url = models.CharField(max_length=200, null=False) class Meta: app_label = "swh.web.common" db_table = "save_authorized_origin" + indexes = [models.Index(fields=["url"])] def __str__(self): return self.url class SaveUnauthorizedOrigin(models.Model): """ Model table holding origin urls not authorized to be loaded into the archive. """ url = models.CharField(max_length=200, null=False) class Meta: app_label = "swh.web.common" db_table = "save_unauthorized_origin" + indexes = [models.Index(fields=["url"])] def __str__(self): return self.url SAVE_REQUEST_ACCEPTED = "accepted" SAVE_REQUEST_REJECTED = "rejected" SAVE_REQUEST_PENDING = "pending" SAVE_REQUEST_STATUS = [ (SAVE_REQUEST_ACCEPTED, SAVE_REQUEST_ACCEPTED), (SAVE_REQUEST_REJECTED, SAVE_REQUEST_REJECTED), (SAVE_REQUEST_PENDING, SAVE_REQUEST_PENDING), ] SAVE_TASK_NOT_CREATED = "not created" SAVE_TASK_NOT_YET_SCHEDULED = "not yet scheduled" SAVE_TASK_SCHEDULED = "scheduled" SAVE_TASK_SUCCEEDED = "succeeded" SAVE_TASK_FAILED = "failed" SAVE_TASK_RUNNING = "running" SAVE_TASK_STATUS = [ (SAVE_TASK_NOT_CREATED, SAVE_TASK_NOT_CREATED), (SAVE_TASK_NOT_YET_SCHEDULED, SAVE_TASK_NOT_YET_SCHEDULED), (SAVE_TASK_SCHEDULED, SAVE_TASK_SCHEDULED), (SAVE_TASK_SUCCEEDED, SAVE_TASK_SUCCEEDED), (SAVE_TASK_FAILED, SAVE_TASK_FAILED), (SAVE_TASK_RUNNING, SAVE_TASK_RUNNING), ] class SaveOriginRequest(models.Model): """ Model table holding all the save origin requests issued by users. """ id = models.BigAutoField(primary_key=True) request_date = models.DateTimeField(auto_now_add=True) visit_type = models.CharField(max_length=200, null=False) origin_url = models.CharField(max_length=200, null=False) status = models.TextField(choices=SAVE_REQUEST_STATUS, default=SAVE_REQUEST_PENDING) loading_task_id = models.IntegerField(default=-1) visit_date = models.DateTimeField(null=True) loading_task_status = models.TextField( choices=SAVE_TASK_STATUS, default=SAVE_TASK_NOT_CREATED ) class Meta: app_label = "swh.web.common" db_table = "save_origin_request" ordering = ["-id"] + indexes = [models.Index(fields=["origin_url", "status"])] def __str__(self): return str( { "id": self.id, "request_date": self.request_date, "visit_type": self.visit_type, "origin_url": self.origin_url, "status": self.status, "loading_task_id": self.loading_task_id, "visit_date": self.visit_date, } )