1
0
mirror of https://github.com/django/django.git synced 2025-01-26 02:00:08 +00:00
django/docs/ref/models/indexes.txt
Akshesh 6a8372e6ec Fixed #26808 -- Added Meta.indexes for class-based indexes.
* Added the index name to its deconstruction.
* Added indexes to sqlite3.schema._remake_table() so that indexes
  aren't dropped when _remake_table() is called.

Thanks timgraham & MarkusH for review and advice.
2016-08-05 18:12:51 -04:00

45 lines
1.2 KiB
Plaintext

=====================
Model index reference
=====================
.. module:: django.db.models.indexes
.. currentmodule:: django.db.models
.. versionadded:: 1.11
Index classes ease creating database indexes. They can be added using the
:attr:`Meta.indexes <django.db.models.Options.indexes>` option. This document
explains the API references of :class:`Index` which includes the `index
options`_.
.. admonition:: Referencing built-in indexes
Indexes are defined in ``django.db.models.indexes``, but for convenience
they're imported into :mod:`django.db.models`. The standard convention is
to use ``from django.db import models`` and refer to the indexes as
``models.<IndexClass>``.
``Index`` options
=================
.. class:: Index(fields=[], name=None)
Creates an index (B-Tree) in the database.
``fields``
-----------
.. attribute:: Index.fields
A list of the name of the fields on which the index is desired.
``name``
--------
.. attribute:: Index.name
The name of the index. If ``name`` isn't provided Django will auto-generate a
name. For compatibility with different databases, index names cannot be longer
than 30 characters and shouldn't start with a number (0-9) or underscore (_).