From 6b8f7b94a51d19efc4571c97d6492ca12b7d61d3 Mon Sep 17 00:00:00 2001 From: Scott Adams Date: Sun, 18 Oct 2015 01:47:45 +0200 Subject: [PATCH 1/4] Create 0005_logentry_additional_data_verbose_name.py Verbose name was missing from 004 so makemigrations causes this. --- ...5_logentry_additional_data_verbose_name.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/auditlog/migrations/0005_logentry_additional_data_verbose_name.py diff --git a/src/auditlog/migrations/0005_logentry_additional_data_verbose_name.py b/src/auditlog/migrations/0005_logentry_additional_data_verbose_name.py new file mode 100644 index 0000000..7837a7c --- /dev/null +++ b/src/auditlog/migrations/0005_logentry_additional_data_verbose_name.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import jsonfield.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('auditlog', '0004_logentry_detailed_object_repr'), + ] + + operations = [ + migrations.AlterField( + model_name='logentry', + name='additional_data', + field=jsonfield.fields.JSONField(null=True, verbose_name='additional data', blank=True), + ), + ] From 96e62781b8b99a6f1af9ab12824a8009e6133277 Mon Sep 17 00:00:00 2001 From: Scott Adams Date: Sun, 18 Oct 2015 01:51:40 +0200 Subject: [PATCH 2/4] Create 0006_object_pk_index.py Seq Scan on auditlog_logentry on heroku postgres. I suspect because of missing index. ```` SELECT "auditlog_logentry"."id", "auditlog_logentry"."content_type_id", "auditlog_logentry"."object_pk", "auditlog_logentry"."object_id", "auditlog_logentry"."object_repr", "auditlog_logentry"."action", "auditlog_logentry"."changes", "auditlog_logentry"."actor_id", "auditlog_logentry"."remote_addr", "auditlog_logentry"."timestamp", "auditlog_logentry"."additional_data" FROM "auditlog_logentry" WHERE ("auditlog_logentry"."content_type_id" = %s AND "auditlog_logentry"."object_pk" = %s) ``` --- .../migrations/0006_object_pk_index.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/auditlog/migrations/0006_object_pk_index.py diff --git a/src/auditlog/migrations/0006_object_pk_index.py b/src/auditlog/migrations/0006_object_pk_index.py new file mode 100644 index 0000000..3c29aa7 --- /dev/null +++ b/src/auditlog/migrations/0006_object_pk_index.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auditlog', '0005_logentry_additional_data_verbose_name'), + ] + + operations = [ + migrations.AlterField( + model_name='logentry', + name='object_pk', + field=models.TextField(verbose_name='object pk', db_index=True), + ), + ] From c4ed32b89b98041ca319fc380234b0d3513b9826 Mon Sep 17 00:00:00 2001 From: Scott Adams Date: Sun, 18 Oct 2015 03:17:41 +0200 Subject: [PATCH 3/4] Add db_index=True to object_pk --- src/auditlog/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/auditlog/models.py b/src/auditlog/models.py index 739352d..d4d7251 100644 --- a/src/auditlog/models.py +++ b/src/auditlog/models.py @@ -160,7 +160,7 @@ class LogEntry(models.Model): ) content_type = models.ForeignKey('contenttypes.ContentType', on_delete=models.CASCADE, related_name='+', verbose_name=_("content type")) - object_pk = models.TextField(verbose_name=_("object pk")) + object_pk = models.TextField(verbose_name=_("object pk"), db_index=True) object_id = models.BigIntegerField(blank=True, db_index=True, null=True, verbose_name=_("object id")) object_repr = models.TextField(verbose_name=_("object representation")) action = models.PositiveSmallIntegerField(choices=Action.choices, verbose_name=_("action")) From 26237a986337822eb24da32e590b3e079a3b6027 Mon Sep 17 00:00:00 2001 From: Scott Adams Date: Mon, 19 Oct 2015 04:24:12 +0200 Subject: [PATCH 4/4] Code nazi told me to put db_index=True at the front of the queue --- src/auditlog/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/auditlog/models.py b/src/auditlog/models.py index d4d7251..085dc67 100644 --- a/src/auditlog/models.py +++ b/src/auditlog/models.py @@ -160,7 +160,7 @@ class LogEntry(models.Model): ) content_type = models.ForeignKey('contenttypes.ContentType', on_delete=models.CASCADE, related_name='+', verbose_name=_("content type")) - object_pk = models.TextField(verbose_name=_("object pk"), db_index=True) + object_pk = models.TextField(db_index=True, verbose_name=_("object pk")) object_id = models.BigIntegerField(blank=True, db_index=True, null=True, verbose_name=_("object id")) object_repr = models.TextField(verbose_name=_("object representation")) action = models.PositiveSmallIntegerField(choices=Action.choices, verbose_name=_("action"))