From 493e5392930e88fd0146f9be85dedf3161b09a71 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 13 Jun 2023 13:13:44 +0200 Subject: [PATCH] Analytics: create DB index on `PageView.date` We use this field to run cleaup tasks (`readthedocs.analytics.tasks.delete_old_page_counts`). Having an index on this field will help a lot to improve these queries. Related https://github.com/readthedocs/readthedocs-ops/issues/1291 --- .../migrations/0007_index_on_pageview_date.py | 19 +++++++++++++++++++ readthedocs/analytics/models.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 readthedocs/analytics/migrations/0007_index_on_pageview_date.py diff --git a/readthedocs/analytics/migrations/0007_index_on_pageview_date.py b/readthedocs/analytics/migrations/0007_index_on_pageview_date.py new file mode 100644 index 00000000000..dfd32855f5c --- /dev/null +++ b/readthedocs/analytics/migrations/0007_index_on_pageview_date.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.19 on 2023-06-13 11:12 + +import datetime + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("analytics", "0006_alter_pageview_id"), + ] + + operations = [ + migrations.AlterField( + model_name="pageview", + name="date", + field=models.DateField(db_index=True, default=datetime.date.today), + ), + ] diff --git a/readthedocs/analytics/models.py b/readthedocs/analytics/models.py index 76a51b2aa46..aff11acb442 100644 --- a/readthedocs/analytics/models.py +++ b/readthedocs/analytics/models.py @@ -82,7 +82,7 @@ class PageView(models.Model): blank=True, ) view_count = models.PositiveIntegerField(default=0) - date = models.DateField(default=datetime.date.today) + date = models.DateField(default=datetime.date.today, db_index=True) status = models.PositiveIntegerField( default=200, help_text=_("HTTP status code"),