Erstellen von Teilindizes mit Django 1.7
DasDokumentatio für Django 1.7 ErwähnungenRunSQL
it @ classes können Teilindizes für Ihre Tabellen erstellt werden. Ich habe eine Tabelle, an der ich die Kombination von @ haben möchttitle
, blog
& category
einzigartig sein. Wenn jedoch keine Kategorie angegeben ist, sollte die Kombination aus Titel und Blog immer noch eindeutig sein.
class Post(models.Model):
title = models.CharField(max_length=200)
blog = models.ForeignKey(Blog)
category = models.ForeignKey(Category, null=True, blank=True)
Ich kann diese Einschränkung mit Teilindizes erreichen (wie die unten gezeigte SQL). Wo füge ich diesen Code hinzu, wenn ich Django 1.7-Migrationen verwende?
CREATE UNIQUE INDEX idx1
ON Post (title, blog_id, category_id)
WHERE category_id IS NOT NULL;
CREATE UNIQUE INDEX idx2
ON Post (title, blog_id)
WHERE category_id IS NULL;