File: operations.txt

package info (click to toggle)
python-django 1%3A1.11.29-1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 47,428 kB
  • sloc: python: 220,776; javascript: 13,523; makefile: 209; xml: 201; sh: 64
file content (92 lines) | stat: -rw-r--r-- 2,421 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
=============================
Database migration operations
=============================

All of these :doc:`operations </ref/migration-operations>` are available from
the ``django.contrib.postgres.operations`` module.

.. _create-postgresql-extensions:

Creating extension using migrations
===================================

You can create a PostgreSQL extension in your database using a migration file.
This example creates an hstore extension, but the same principles apply for
other extensions.

Set up the hstore extension in PostgreSQL before the first ``CreateModel``
or ``AddField`` operation that involves
:class:`~django.contrib.postgres.fields.HStoreField` by adding a migration with
the :class:`~django.contrib.postgres.operations.HStoreExtension` operation.
For example::

    from django.contrib.postgres.operations import HStoreExtension

    class Migration(migrations.Migration):
        ...

        operations = [
            HStoreExtension(),
            ...
        ]

Creating the extension requires a database user with superuser privileges.
If the Django database user doesn't have superuser privileges, you'll have
to create the extension outside of Django migrations with a user that has
the appropriate privileges. In that case, connect to your Django database and
run the query ``CREATE EXTENSION IF NOT EXISTS hstore;``.

.. currentmodule:: django.contrib.postgres.operations

``CreateExtension``
===================

.. class:: CreateExtension(name)

    An ``Operation`` subclass which installs PostgreSQL extensions.

    .. attribute:: name

        This is a required argument. The name of the extension to be installed.

``BtreeGinExtension``
=====================

.. class:: BtreeGinExtension()

    .. versionadded:: 1.11

    Install the ``btree_gin`` extension.

``CITextExtension``
===================

.. class:: CITextExtension()

    .. versionadded:: 1.11

    Installs the ``citext`` extension.

``HStoreExtension``
===================

.. class:: HStoreExtension()

    Installs the ``hstore`` extension and also sets up the connection to
    interpret hstore data for possible use in subsequent migrations.

``TrigramExtension``
====================

.. class:: TrigramExtension()

    .. versionadded:: 1.10

    Installs the ``pg_trgm`` extension.

``UnaccentExtension``
=====================

.. class:: UnaccentExtension()

    Installs the ``unaccent`` extension.