数据库迁移操作 — Django 文档

来自菜鸟教程
Django/docs/2.2.x/ref/contrib/postgres/operations
跳转至:导航、​搜索

数据库迁移操作

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

使用迁移创建扩展

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

通过添加带有 HStoreExtension 操作的迁移,在涉及 HStoreField 的第一个 CreateModelAddField 操作之前在 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
这是一个必需的参数。 要安装的扩展名。


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 扩展。