Операции по миграции базы данных¶
Все эти 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.