[1.5.x] Created special PostgreSQL text indexes when unique is True
Refs #19441.
Backport of c698c55966
from master.
This commit is contained in:
parent
7ca9b71628
commit
012229914c
|
@ -42,7 +42,7 @@ class DatabaseCreation(BaseDatabaseCreation):
|
||||||
|
|
||||||
def sql_indexes_for_field(self, model, f, style):
|
def sql_indexes_for_field(self, model, f, style):
|
||||||
output = []
|
output = []
|
||||||
if f.db_index:
|
if f.db_index or f.unique:
|
||||||
qn = self.connection.ops.quote_name
|
qn = self.connection.ops.quote_name
|
||||||
db_table = model._meta.db_table
|
db_table = model._meta.db_table
|
||||||
tablespace = f.db_tablespace or model._meta.db_tablespace
|
tablespace = f.db_tablespace or model._meta.db_tablespace
|
||||||
|
|
|
@ -272,6 +272,9 @@ field, a :exc:`django.db.IntegrityError` will be raised by the model's
|
||||||
This option is valid on all field types except :class:`ManyToManyField` and
|
This option is valid on all field types except :class:`ManyToManyField` and
|
||||||
:class:`FileField`.
|
:class:`FileField`.
|
||||||
|
|
||||||
|
Note that when ``unique`` is ``True``, you don't need to specify
|
||||||
|
:attr:`~Field.db_index`, because ``unique`` implies the creation of an index.
|
||||||
|
|
||||||
``unique_for_date``
|
``unique_for_date``
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
|
@ -17,4 +17,4 @@ if connection.vendor == 'postgresql':
|
||||||
class IndexedArticle(models.Model):
|
class IndexedArticle(models.Model):
|
||||||
headline = models.CharField(max_length=100, db_index=True)
|
headline = models.CharField(max_length=100, db_index=True)
|
||||||
body = models.TextField(db_index=True)
|
body = models.TextField(db_index=True)
|
||||||
slug = models.CharField(max_length=40, unique=True, db_index=True)
|
slug = models.CharField(max_length=40, unique=True)
|
||||||
|
|
Loading…
Reference in New Issue