Операции по миграции базы данных

Все эти operations доступны из модуля django.contrib.postgres.operations.

Создание расширения с помощью миграций

Вы можете создать расширение PostgreSQL в своей базе данных с помощью файла миграции. В данном примере создается расширение hstore, но те же принципы применимы и к другим расширениям.

Настройте расширение hstore в PostgreSQL перед первой операцией CreateModel или AddField, которая включает HStoreField, добавив миграцию с операцией HStoreExtension. Например:

from django.contrib.postgres.operations import HStoreExtension

class Migration(migrations.Migration):
    ...

    operations = [
        HStoreExtension(),
        ...
    ]

Для создания расширения требуется пользователь базы данных с привилегиями суперпользователя. Если пользователь базы данных Django не имеет привилегий суперпользователя, вам придется создать расширение вне Django migrations с пользователем, имеющим соответствующие привилегии. В этом случае подключитесь к вашей базе данных Django и выполните запрос CREATE EXTENSION IF NOT EXISTS hstore;.

CreateExtension

class CreateExtension(name)[исходный код]

Подкласс Operation, который устанавливает расширения PostgreSQL.

name

Это обязательный аргумент. Имя устанавливаемого расширения.

BtreeGinExtension

class BtreeGinExtension[исходный код]

Установите расширение btree_gin.

BtreeGistExtension

class BtreeGistExtension[исходный код]

Установите расширение btree_gist.

CITextExtension

class CITextExtension[исходный код]

Устанавливает расширение citext.

CryptoExtension

class CryptoExtension[исходный код]

Устанавливает расширение pgcrypto.

HStoreExtension

class HStoreExtension[исходный код]

Устанавливает расширение hstore, а также настраивает соединение для интерпретации данных hstore для возможного использования в последующих миграциях.

TrigramExtension

class TrigramExtension[исходный код]

Устанавливает расширение pg_trgm.

UnaccentExtension

class UnaccentExtension[исходный код]

Устанавливает расширение unaccent.

Вернуться на верх