---
title: "Migrasi PostgreSQL ke MariaDB di browser Anda"
description: "Migrasi database PostgreSQL ke MariaDB: konversi file pg_dump menjadi skrip dengan tabel, kunci, dan data yang sama, plus laporan setiap perubahan."
canonical: https://intosql.com/id/postgresql-ke-mariadb
last_updated: 2026-10-15
---

# Migrasi PostgreSQL ke MariaDB di browser Anda

Letakkan dump plain dari pg_dump atau pg_dumpall, sebagai .sql atau .sql.gz, lalu unduh skrip MariaDB dengan tabel, kunci, indeks, dan data yang sama. Setiap nilai yang tidak bisa disimpan MariaDB apa adanya, dan setiap objek yang tidak didukungnya, dicantumkan di laporan.

[Panduan migrasi PostgreSQL ke MariaDB](https://intosql.com/docs/migrations/postgresql-to-mariadb)

[Tipe data PostgreSQL ke MariaDB](https://intosql.com/docs/types/postgresql-to-mariadb)

## Yang berubah dari PostgreSQL ke MariaDB

Setiap baris adalah aturan yang diterapkan konverter, beserta baris laporan yang ditulisnya saat aturan itu mengubah sesuatu di data Anda.

| Di PostgreSQL | Di MariaDB | Baris laporan |
| --- | --- | --- |
| boolean | tinyint(1) |  |
| varchar(n), char(n), text | varchar(n) hingga 1024 karakter, char(n) hingga 255, text jika lebih |  |
| numeric(p,s) past 65 digits or 30 decimals, and numeric values past what decimal(65,30) holds | varchar | `decimal_as_text` |
| money | decimal(19,2) | `type_replaced` |
| interval | varchar(100) berisi teks PostgreSQL | `type_replaced` |
| arrays (integer[], text[]...) | array json | `type_replaced` |
| ranges, geometric types, tsvector, xml, hstore, composite and extension types | longtext berisi teks PostgreSQL | `type_replaced` |
| json, jsonb | json |  |
| timestamp | datetime(p) |  |
| timestamp with time zone | datetime(p) dalam UTC | `moments_as_utc` |
| time | time(p) |  |
| infinity, -infinity, BC dates and years past 9999 | NULL | `date_out_of_range` |
| NaN and Infinity in numeric, real and double precision | NULL | `invalid_value_null` |
| NOT NULL columns with values that become NULL | NOT NULL dihapus | `not_null_relaxed` |
| enum types | enum(...) dengan label yang sama |  |
| uuid, inet, cidr | uuid sebagai uuid, inet dan cidr sebagai varchar(43) |  |
| bytea | blob, mediumblob, atau longblob; varbinary(3072) dalam key |  |
| bit(n) | bit(n) hingga 64, text jika lebih |  |
| citext and nondeterministic collations | perbandingan persis | `case_insensitive_collation` |
| serial, identity | AUTO_INCREMENT, berlanjut setelah id tertinggi |  |
| a second serial or identity column in a table | bilangan bulat biasa | `counter_dropped` |
| sequences not owned by a column | CREATE SEQUENCE, pada nilai yang diberikannya berikutnya |  |
| generated columns | kolom generated, STORED seperti di sumber |  |
| generated columns with functions MariaDB lacks | kolom biasa | `generated_not_translated` |
| defaults with functions MariaDB lacks, and defaults from a sequence | tanpa default | `default_not_translated` |
| CHECK constraints | diterjemahkan, langsung di CREATE TABLE |  |
| CHECK constraints with functions MariaDB lacks | tidak dibuat | `check_skipped` |
| CHECK ... NOT VALID | tidak dibuat | `check_not_valid` |
| gin, gist, brin and hash indexes, partial and expression indexes | tidak dibuat | `index_skipped` |
| foreign keys | foreign key, dimuat dengan FOREIGN_KEY_CHECKS=0 |  |
| foreign keys to tables the dump doesn't create | tidak dibuat | `foreign_key_skipped` |
| partitioned tables | satu tabel dengan baris dari setiap partisi | `partitions_dropped` |
| schemas | satu database, nama tabel diawali nama skemanya | `schemas_merged` |
| views, functions, procedures, triggers, rules, policies, extensions and types | dicantumkan di laporan | `not_converted_objects` |
| dumps without CREATE TABLE (--data-only) | tipe dibaca dari nilainya | `no_schema` |
| expressions in INSERT values | NULL | `expression_value` |
| types IntoSQL doesn't know | longtext | `unknown_type` |
| text that isn't valid in its encoding | byte yang rusak menjadi karakter pengganti | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | disalin apa adanya | `mojibake_suspected` |

## Muat skrip ke MariaDB

Skrip membuat tabel, menyalin baris, lalu menambahkan kunci, indeks, dan foreign key, jadi pemuatan berjalan cepat dan berhenti di galat pertama.

```shell
mariadb --default-character-set=utf8mb4 mydb < postgresql.mariadb.sql
```

Foreign key dibuat seperti yang dideklarasikan dump, dengan FOREIGN_KEY_CHECKS=0 selama baris dimuat, seperti yang dilakukan mysqldump.

Untuk dump yang besar, jalankan klien di mesin yang sama dengan server, dan naikkan max_allowed_packet jika satu baris sangat besar.

IntoSQL Pro memuat file langsung ke MariaDB dari aplikasi desktop atau command line, tanpa menulis skrip.

## Buat dump PostgreSQL untuk hasil terbaik

Konverter membaca apa yang ada di dump. Opsi berikut membuat lebih banyak data Anda tetap ada di dalamnya:

- --format=plain, default pg_dump, menulis SQL. Arsip custom atau directory (-Fc, -Fd) menjadi SQL dengan pg_restore -f dump.sql, tanpa server database.
- --no-owner --no-privileges menghilangkan role dan grant, yang memang dilewati konverter, jadi dump lebih kecil.
- pg_dumpall menyimpan setiap database dalam satu file; tabel masing-masing diberi nama sesuai database-nya, jadi tidak ada yang bentrok.

## Yang tidak dikonversi

View, materialized view, fungsi, prosedur, trigger, rule, kebijakan keamanan baris, ekstensi, dan tipe ditulis dalam bahasa PostgreSQL sendiri. Semuanya dicantumkan di laporan berdasarkan nama, tidak pernah dibuang diam-diam, sehingga Anda bisa menulis ulang untuk MariaDB.

## Pertanyaan tentang PostgreSQL ke MariaDB

### Apakah dump saya diunggah?

Tidak. Konverter berjalan di browser Anda dan membaca dump dari disk Anda sepotong demi sepotong, jadi dump tidak pernah meninggalkan komputer Anda. Aplikasi desktop dan command line juga mengonversi di komputer Anda.

### Seberapa besar dump yang bisa dipakai?

Konverter tidak pernah menyimpan seluruh dump di memori: file dibaca dua kali, per rentang, dan skrip ditulis sambil berjalan. Dump berukuran beberapa gigabyte bisa dikonversi di browser, di aplikasi desktop, dan dengan command line.

### Apakah arsip pg_dump -Fc bisa dibaca?

Tidak langsung: arsip custom adalah format biner. pg_restore -f dump.sql dump.backup mengubahnya menjadi SQL plain yang dibaca konverter, tanpa terhubung ke server. Konverter memberi tahu saat menerima arsip.

### Dump dari versi PostgreSQL mana yang bisa dipakai?

Dump yang ditulis pg_dump dan pg_dumpall dari PostgreSQL 10 ke atas, dengan baris COPY atau INSERT. Setiap dump uji berasal dari PostgreSQL 13 dan 18 dan dibandingkan dengan sumbernya sel demi sel.

### Apakah nilai serial dan identity dipertahankan?

Ya, untuk satu kolom per tabel: kolom serial atau identity yang mengawali primary key menjadi AUTO_INCREMENT dan berlanjut setelah id tertinggi. Sequence yang tidak dimiliki kolom menjadi sequence MariaDB pada nilai yang sudah dicapainya.

### Apa yang terjadi pada array, enum, dan tipe PostgreSQL lainnya?

Array menjadi array JSON, boolean menjadi tinyint(1), enum menjadi ENUM dengan label yang sama, uuid menjadi UUID, dan money menjadi decimal. Range, tipe geometris, hstore, dan tipe komposit mempertahankan teks PostgreSQL, dan laporan menyebutkan kolomnya.

### Bagaimana dengan fungsi, trigger, dan view?

Semuanya dicantumkan di laporan berdasarkan nama dan tidak dikonversi, karena setiap database menulisnya dalam bahasanya sendiri.

### Di versi MariaDB mana skrip bisa dimuat?

MariaDB 10.11 dan yang lebih baru. Setiap dump uji dimuat di 10.11 dan 11.4, dan berhenti di galat pertama jika ada yang salah.

## Dari PostgreSQL

- [PostgreSQL ke PostgreSQL](https://intosql.com/id/postgresql-ke-postgresql)
- [PostgreSQL ke MySQL](https://intosql.com/id/postgresql-ke-mysql)
- [PostgreSQL ke SQLite](https://intosql.com/id/postgresql-ke-sqlite)
- [PostgreSQL ke SQL Server](https://intosql.com/id/postgresql-ke-sql-server)
- [PostgreSQL ke Oracle](https://intosql.com/id/postgresql-ke-oracle)

## Ke MariaDB

- [MySQL ke MariaDB](https://intosql.com/id/mysql-ke-mariadb)
- [MariaDB ke MariaDB](https://intosql.com/id/mariadb-ke-mariadb)
- [SQL Server ke MariaDB](https://intosql.com/id/sql-server-ke-mariadb)
- [SQLite ke MariaDB](https://intosql.com/id/sqlite-ke-mariadb)
- [Oracle ke MariaDB](https://intosql.com/id/oracle-ke-mariadb)

## Panduan dan setiap pasangan

- [MariaDB ke PostgreSQL](https://intosql.com/id/mariadb-ke-postgresql)
- [Panduan migrasi PostgreSQL ke MariaDB](https://intosql.com/docs/migrations/postgresql-to-mariadb)
- [Tipe data PostgreSQL ke MariaDB](https://intosql.com/docs/types/postgresql-to-mariadb)
- [Setiap pasangan database](https://intosql.com/id/migrasi-database)
