Adds db indices

This commit is contained in:
Christopher Neugebauer 2016-04-06 22:12:29 +10:00
parent 53413388e0
commit dba3773636
2 changed files with 72 additions and 4 deletions

View file

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.2 on 2016-04-06 12:12
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('registrasion', '0011_auto_20160401_0943'),
]
operations = [
migrations.AlterField(
model_name='cart',
name='active',
field=models.BooleanField(db_index=True, default=True),
),
migrations.AlterField(
model_name='cart',
name='released',
field=models.BooleanField(db_index=True, default=False),
),
migrations.AlterField(
model_name='cart',
name='time_last_updated',
field=models.DateTimeField(db_index=True),
),
migrations.AlterField(
model_name='category',
name='order',
field=models.PositiveIntegerField(db_index=True, verbose_name='Display order'),
),
migrations.AlterField(
model_name='product',
name='order',
field=models.PositiveIntegerField(db_index=True, verbose_name='Display order'),
),
migrations.AlterField(
model_name='productitem',
name='quantity',
field=models.PositiveIntegerField(db_index=True),
),
migrations.AlterIndexTogether(
name='cart',
index_together=set([('active', 'released'), ('released', 'user'), ('active', 'user'), ('active', 'time_last_updated')]),
),
]

View file

@ -99,6 +99,7 @@ class Category(models.Model):
)
order = models.PositiveIntegerField(
verbose_name=("Display order"),
db_index=True,
)
render_type = models.IntegerField(
choices=CATEGORY_RENDER_TYPES,
@ -147,6 +148,7 @@ class Product(models.Model):
)
order = models.PositiveIntegerField(
verbose_name=("Display order"),
db_index=True,
)
@ -313,6 +315,7 @@ class VoucherDiscount(DiscountBase):
Voucher,
on_delete=models.CASCADE,
verbose_name=_("Voucher"),
db_index=True,
)
@ -458,17 +461,33 @@ class Cart(models.Model):
''' Represents a set of product items that have been purchased, or are
pending purchase. '''
class Meta:
index_together = [
("active", "time_last_updated"),
("active", "released"),
("active", "user"),
("released", "user"),
]
def __str__(self):
return "%d rev #%d" % (self.id, self.revision)
user = models.ForeignKey(User)
# ProductItems (foreign key)
vouchers = models.ManyToManyField(Voucher, blank=True)
time_last_updated = models.DateTimeField()
time_last_updated = models.DateTimeField(
db_index=True,
)
reservation_duration = models.DurationField()
revision = models.PositiveIntegerField(default=1)
active = models.BooleanField(default=True)
released = models.BooleanField(default=False) # Refunds etc
active = models.BooleanField(
default=True,
db_index=True,
)
released = models.BooleanField(
default=False,
db_index=True
) # Refunds etc
@classmethod
def reserved_carts(cls):
@ -492,7 +511,7 @@ class ProductItem(models.Model):
cart = models.ForeignKey(Cart)
product = models.ForeignKey(Product)
quantity = models.PositiveIntegerField()
quantity = models.PositiveIntegerField(db_index=True)
@python_2_unicode_compatible