mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Created special PostgreSQL text indexes when unique is True
Refs #19441.
This commit is contained in:
		| @@ -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) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user