Database migration operations

所有这些operations都可从django.contrib.postgres.operations模块中获得。

使用迁移创建扩展

您可以使用迁移文件在数据库中创建一个PostgreSQL扩展。 此示例创建一个hstore扩展,但相同的原则适用于其他扩展。

在第CreateModelAddField操作之前,在PostgreSQL中设置hstore扩展,涉及HStoreField,通过添加具有HStoreExtension 像这样:

from django.contrib.postgres.operations import HStoreExtension

class Migration(migrations.Migration):
    ...

    operations = [
        HStoreExtension(),
        ...
    ]

创建扩展需要具有超级用户权限的数据库用户。 如果Django数据库用户没有超级用户权限,则必须在具有适当特权的用户之外创建Django迁移之外的扩展。 在这种情况下,连接到Django数据库并运行查询CREATE EXTENSION IF NOT EXISTS hstore;

CreateExtension

CreateExtension(name)[source]

用于安装PostgreSQL扩展的Operation子类。

name

这是必需的参数。 要安装的扩展名的名称。

BtreeGinExtension

BtreeGinExtension[source]
Django中的新功能1.11。

安装btree_gin扩展名。

CITextExtension

CITextExtension[source]
Django中的新功能1.11。

安装citext扩展名。

HStoreExtension

HStoreExtension[source]

安装hstore扩展名,并设置连接来解释hstore数据,以便在后续迁移中使用。

TrigramExtension

TrigramExtension[source]
Django中的新功能1.10。

安装pg_trgm扩展名。

UnaccentExtension

UnaccentExtension[source]

安装unaccent扩展名。