Skip to main content

数据库迁移操作

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

使用迁移创建扩展

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

在第一个涉及 HStoreFieldCreateModelAddField 操作之前,通过添加具有 HStoreExtension 操作的迁移,在PostgreSQL中设置hstore扩展。例如:

from django.contrib.postgres.operations import HStoreExtension

class Migration(migrations.Migration):
    ...

    operations = [
        HStoreExtension(),
        ...
    ]

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

CreateExtension

class CreateExtension(name)

一个安装PostgreSQL扩展的 Operation 子类。

name

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

HStoreExtension

class HStoreExtension

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

TrigramExtension

class TrigramExtension
New in Django 1.10.

安装 pg_trgm 扩展。

UnaccentExtension

class UnaccentExtension

安装 unaccent 扩展。