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