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

Semua [operations](/id/3.0/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.0/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(),
        ...
    ]
```

Membuat tambahan membutuhkan pengguna basisdata dengan hak khusus super pengguna. Jika pengguna basisdata Django tidak memiliki hal khusus super pengguna, anda harus membuat tambahan diluar dari perpindahan Django dengan pengguna yang mempunyai hak khusus sesuai. Dalam kasus itu, hubungkan ke basisdata Django dan jalankan permintaan `CREATE EXTENSION IF NOT EXISTS hstore;`.

## `CreateExtension`

#### `class CreateExtension(name)`

Sebuah subkelas `Operation` yang memasang tambahan PostgreSQL.

#### `name`

Ini adalah argumen wajib. Nama dari tambahan untuk dipasang.

## `BtreeGinExtension`

#### `class BtreeGinExtension`

Pasang tambahan `btree_gin`.

## `BtreeGistExtension`

#### `class BtreeGistExtension`

Pasang tambahan `btree_gist`.

## `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`.

## Index concurrent 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.0/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.0/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.0/howto/writing-migrations/#non-atomic-migrations)).
