---
title: "Tindakan perpindahan basisdata"
version: 3.1
locale: id
source: https://docs.djangoproject.com/id/3.1/ref/contrib/postgres/operations/
canonical: https://djangodocs.dev/id/3.1/ref/contrib/postgres/operations/
---
# Tindakan perpindahan basisdata

Semua [operations](/id/3.1/ref/migration-operations/) ini tersedia dari modul `django.contrib.postgres.operations`.

## Membuat tambahan menggunakan perpindahan

Anda dapat membuat tambahan PostgreSQL dalam basisdata anda menggunakan berkas pemindahan. Contoh ini membuat sebuah tambahan hstore, tetapi prinsip-prinsip sama berlaku untuk tambahan-tambahan lain.

Setel tambahan hstore dalam PostgreSQL sebelum tindakan pertama `CreateModel` atau `AddField` yang melibatkan [`HStoreField`](/id/3.1/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField) dengan menambahkan perpindahan dengan tindakan [`HStoreExtension`](#django.contrib.postgres.operations.HStoreExtension). Sebagai contoh:

```
from django.contrib.postgres.operations import HStoreExtension

class Migration(migrations.Migration):
    ...

    operations = [
        HStoreExtension(),
        ...
    ]
```

For most extensions, this requires a database user with superuser privileges.
If the Django database user doesn't have the appropriate privileges, you'll
have to create the extension outside of Django migrations with a user that has
them. In that case, connect to your Django database and run the query
`CREATE EXTENSION IF NOT EXISTS hstore;`.

## `CreateExtension`

#### `class CreateExtension(name)`

An `Operation` subclass which installs a PostgreSQL extension. For common
extensions, use one of the more specific subclasses below.

#### `name`

Ini adalah argumen wajib. Nama dari tambahan untuk dipasang.

## `BloomExtension`

#### `class BloomExtension`

> **New in Django 3.1**

Installs the `bloom` extension.

## `BtreeGinExtension`

#### `class BtreeGinExtension`

Installs the `btree_gin` extension.

## `BtreeGistExtension`

#### `class BtreeGistExtension`

Installs the `btree_gist` extension.

## `CITextExtension`

#### `class CITextExtension`

Pasang tambahan `citext`.

## `CryptoExtension`

#### `class CryptoExtension`

Pasang tambahan `pgcrypto`.

## `HStoreExtension`

#### `class HStoreExtension`

Pasang tambahan `hstore` dan juga setel hubungan pada penterjemah data hstore untuk kemungkinan penggunaan dalam perpindahaan selanjutnya.

## `TrigramExtension`

#### `class TrigramExtension`

Pasang tambahan `pg_trm`.

## `UnaccentExtension`

#### `class UnaccentExtension`

Pasang tambahan `unaccent`.

## Concurrent index operations

> **New in Django 3.0**

PostgreSQL supports the `CONCURRENTLY` option to `CREATE INDEX` and
`DROP INDEX` statements to add and remove indexes without locking out writes.
This option is useful for adding or removing an index in a live production
database.

#### `class AddIndexConcurrently(model_name, index)`

Like [`AddIndex`](/id/3.1/ref/migration-operations/#django.db.migrations.operations.AddIndex), but creates an
index with the `CONCURRENTLY` option. This has a few caveats to be aware
of when using this option, see [the PostgreSQL documentation of building
indexes concurrently](https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY).

#### `class RemoveIndexConcurrently(model_name, name)`

Like [`RemoveIndex`](/id/3.1/ref/migration-operations/#django.db.migrations.operations.RemoveIndex), but removes the
index with the `CONCURRENTLY` option. This has a few caveats to be aware
of when using this option, see [the PostgreSQL documentation](https://www.postgresql.org/docs/current/sql-dropindex.html).

> **Note**
>
> The `CONCURRENTLY` option is not supported inside a transaction (see
> [non-atomic migration](/id/3.1/howto/writing-migrations/#non-atomic-migrations)).
