From d976d8d26d455eb8fbf32cde05919c7b98ffc2c6 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 3 Aug 2016 00:02:18 +0200 Subject: [PATCH] Added some database indices --- .../migrations/0025_auto_20160802_2202.py | 52 +++++++++++++++++++ src/pretix/base/models/log.py | 4 +- src/pretix/base/models/orders.py | 8 +-- src/pretix/base/models/vouchers.py | 4 +- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/pretix/base/migrations/0025_auto_20160802_2202.py diff --git a/src/pretix/base/migrations/0025_auto_20160802_2202.py b/src/pretix/base/migrations/0025_auto_20160802_2202.py new file mode 100644 index 000000000..7385dfd22 --- /dev/null +++ b/src/pretix/base/migrations/0025_auto_20160802_2202.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2016-08-02 22:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import pretix.base.models.orders +import pretix.base.models.vouchers + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0024_auto_20160728_1725'), + ] + + operations = [ + migrations.AlterField( + model_name='logentry', + name='datetime', + field=models.DateTimeField(auto_now_add=True, db_index=True), + ), + migrations.AlterField( + model_name='logentry', + name='object_id', + field=models.PositiveIntegerField(db_index=True), + ), + migrations.AlterField( + model_name='order', + name='code', + field=models.CharField(db_index=True, max_length=16, verbose_name='Order code'), + ), + migrations.AlterField( + model_name='order', + name='status', + field=models.CharField(choices=[('n', 'pending'), ('p', 'paid'), ('e', 'expired'), ('c', 'cancelled'), ('r', 'refunded')], db_index=True, max_length=3, verbose_name='Status'), + ), + migrations.AlterField( + model_name='orderposition', + name='secret', + field=models.CharField(db_index=True, default=pretix.base.models.orders.generate_position_secret, max_length=64), + ), + migrations.AlterField( + model_name='voucher', + name='code', + field=models.CharField(db_index=True, default=pretix.base.models.vouchers.generate_code, max_length=255, verbose_name='Voucher code'), + ), + migrations.AlterField( + model_name='voucher', + name='tag', + field=models.CharField(blank=True, db_index=True, help_text='You can use this field to group multiple vouchers together. If you enter the same value for multiple vouchers, you can get statistics on how many of them have been redeemed etc.', max_length=255, verbose_name='Tag'), + ), + ] diff --git a/src/pretix/base/models/log.py b/src/pretix/base/models/log.py index de1d25907..02de810f8 100644 --- a/src/pretix/base/models/log.py +++ b/src/pretix/base/models/log.py @@ -23,9 +23,9 @@ class LogEntry(models.Model): :type data: str """ content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) - object_id = models.PositiveIntegerField() + object_id = models.PositiveIntegerField(db_index=True) content_object = GenericForeignKey('content_type', 'object_id') - datetime = models.DateTimeField(auto_now_add=True) + datetime = models.DateTimeField(auto_now_add=True, db_index=True) user = models.ForeignKey('User', null=True, blank=True, on_delete=models.PROTECT) event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.CASCADE) action_type = models.CharField(max_length=255) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index 952e926e9..377c6d386 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -90,12 +90,14 @@ class Order(LoggedModel): code = models.CharField( max_length=16, - verbose_name=_("Order code") + verbose_name=_("Order code"), + db_index=True ) status = models.CharField( max_length=3, choices=STATUS_CHOICE, - verbose_name=_("Status") + verbose_name=_("Status"), + db_index=True ) event = models.ForeignKey( Event, @@ -426,7 +428,7 @@ class OrderPosition(AbstractPosition): max_digits=10, decimal_places=2, verbose_name=_('Tax value') ) - secret = models.CharField(max_length=64, default=generate_position_secret) + secret = models.CharField(max_length=64, default=generate_position_secret, db_index=True) class Meta: verbose_name = _("Order position") diff --git a/src/pretix/base/models/vouchers.py b/src/pretix/base/models/vouchers.py index d1d60b982..309e0ce57 100644 --- a/src/pretix/base/models/vouchers.py +++ b/src/pretix/base/models/vouchers.py @@ -56,7 +56,8 @@ class Voucher(LoggedModel): ) code = models.CharField( verbose_name=_("Voucher code"), - max_length=255, default=generate_code + max_length=255, default=generate_code, + db_index=True, ) redeemed = models.BooleanField( verbose_name=_("Redeemed"), @@ -114,6 +115,7 @@ class Voucher(LoggedModel): max_length=255, verbose_name=_("Tag"), blank=True, + db_index=True, help_text=_("You can use this field to group multiple vouchers together. If you enter the same value for " "multiple vouchers, you can get statistics on how many of them have been redeemed etc.") )