Langsung ke konten
Beranda IntoSQL

Konversi PostgreSQL ke MariaDB

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.

File Anda
sqlshop_2024_postgres.sqlFile contoh, 6,2 kB
Database Anda

18 baris dikonversi, 3 perbaikan, tidak ada yang ditolak

Tampilkan

Tabel di shop_2024_postgres.sqlDump PostgreSQL 18.6 · ditulis oleh pg_dump · utf8mb4

  • customers8 baris2
    8 kolom
    idint not null
    nametext not null
    emailvarchar(768) not null
    countrychar(2) not null
    is_activetinyint(1) not null
    tagsjson not null
    signed_update
    created_atdatetime(6) not null
  • orders10 baris1
    10 kolom
    idint not null
    customer_idint not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint not null
    ordered_atdatetime(6) not null
    shipped_atdatetime(6)
    notetext
    detailsjson
    deliveryvarchar(100)

Tidak dikonversi

  • View paid_orders

Setiap database menulis objek ini dalam bahasanya sendiri. Tulis ulang untuk MariaDB.

-- Written by IntoSQL from a PostgreSQL dump. Load it with: mariadb --default-character-set=utf8mb4 <database> < <file>
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES';

CREATE TABLE `customers` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` text NOT NULL,
  `email` varchar(768) NOT NULL,
  `country` char(2) NOT NULL DEFAULT 'US',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `tags` json NOT NULL,
  `signed_up` date,
  `created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  UNIQUE KEY `customers_email_key` (`email`),
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='People who bought at least once';

CREATE TABLE `orders` (
  `id` int NOT NULL AUTO_INCREMENT,
  `customer_id` int NOT NULL,
  `status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
  `total` decimal(10,2) NOT NULL,
  `items` smallint NOT NULL DEFAULT 1,
  `ordered_at` datetime(6) NOT NULL,
  `shipped_at` datetime(6),
  `note` text,
  `details` json,
  `delivery` varchar(100),
  PRIMARY KEY (`id`),
  KEY `idx_orders_customer` (`customer_id`),
  KEY `idx_orders_status_date` (`status`,`ordered_at`),
  CONSTRAINT `orders_total_check` CHECK (`total` >= (0)),
  CONSTRAINT `orders_customer_id_fkey` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`tags`,`signed_up`,`created_at`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'["vip"]','2023-01-15','2023-01-15 10:24:00'),(2,'Zoë Müller','zoe@example.de','DE',1,'[]','2023-02-03','2023-02-03 08:11:42'),(3,'José Peña','jose@example.es','ES',0,'["wholesale","late payer"]','2023-03-21','2023-03-21 19:05:17'),(4,'李雷','lilei@example.cn','CN',1,'[]','2023-05-09','2023-05-09 02:40:00'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'[]',NULL,'2023-06-30 14:00:00'),(6,'Amélie Laurent','amelie@example.fr','FR',1,'["vip"]','2024-01-02','2024-01-02 09:30:00'),(7,'Ravi Patel','ravi@example.in','IN',0,'[]','2024-02-29','2024-02-29 23:59:59'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'[]','2024-04-12','2024-04-12 12:12:12');
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`details`,`delivery`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'{"gift": false}','1 day 06:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','{"gift": true, "wrap": "red"}',NULL),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind',NULL,NULL),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','{"fragile": true}','2 days 05:50:00'),(5,5,'pending',45.75,2,'2024-03-08 17:20:00',NULL,'Leave at the door; ring twice',NULL,NULL),(6,6,'shipped',310.40,5,'2024-03-10 13:00:00','2024-03-11 09:00:00','Fragile: "glass"','{"fragile": true}','20:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,NULL,NULL),(8,2,'shipped',19.99,1,'2024-03-12 08:00:00',NULL,'Shipped date set to infinity by an old import',NULL,NULL),(9,3,'shipped',64.00,2,'2024-03-14 15:30:00','2024-03-15 10:00:00','Two parcels','{"parcels": [1, 2]}','18:30:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf',NULL,NULL);

SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;

Perbaikan

  1. "created_at" dari customers berisi momen dengan zona waktu; MariaDB tidak punya tipe yang menyimpannya, jadi momen itu disimpan dalam UTC sebagai datetime(6).
  2. "tags" di customers adalah text[], yang tidak ada di MariaDB, jadi menjadi json dengan nilai yang sama.
  3. "delivery" di orders adalah interval, yang tidak ada di MariaDB, jadi menjadi varchar(100) dengan nilai yang sama.

Perlu diperiksa

  • 1 view, trigger, rutin, atau event tidak dikonversi; laporan mencantumkan masing-masing. Buat ulang secara manual di MariaDB.
  • Default "tags" di customers tidak bisa ditulis untuk MariaDB (a value its type can't hold), jadi kolom itu tanpa default. Tambahkan default secara manual jika baris baru memerlukannya.
  • Indeks idx_orders_details pada orders memakai ekspresi yang tidak bisa ditulis untuk MariaDB (neither MySQL 5.7 nor MariaDB index an expression), jadi tidak dibuat. Buat indeks secara manual jika kueri memerlukannya.
  • 1 nilai di "shipped_at" dari orders adalah tanggal yang tidak bisa disimpan MariaDB, misalnya infinity, jadi menjadi NULL. MariaDB menyimpan tahun 1 sampai 9999 tanpa infinity; ganti tanggal itu di sumber jika penting.

File Anda dikonversi di komputer ini dan tidak pernah diunggah.

Contoh lain:

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.

  • boolean

    tinyint(1)

    BOOLEAN di MariaDB adalah TINYINT(1): true adalah 1 dan false adalah 0.

  • varchar(n), char(n), text

    varchar(n) hingga 1024 karakter, char(n) hingga 255, text jika lebih

    Teks mempertahankan setiap karakter sebagai utf8mb4. Kolom dalam key paling banyak varchar(768), batas terpanjang key.

  • numeric(p,s) past 65 digits or 30 decimals, and numeric values past what decimal(65,30) holds

    varchar

    decimal di MariaDB memuat 65 digit dengan 30 desimal. Angka yang lebih lebar disimpan sebagai teks agar setiap digit tetap persis; numeric tanpa presisi menjadi decimal(65,30) jika nilainya muat.

    Baris laporan: decimal_as_text

  • money

    decimal(19,2)

    MariaDB tidak punya tipe money. Jumlahnya disimpan sebagai angka, tanpa simbol mata uang yang ditambahkan locale server.

    Baris laporan: type_replaced

  • interval

    varchar(100) berisi teks PostgreSQL

    TIME di MariaDB memuat durasi hingga 838 jam, tetapi interval punya bulan dan hari; teksnya mempertahankan setiap bagian.

    Baris laporan: type_replaced

  • arrays (integer[], text[]...)

    array json

    MariaDB tidak punya array. Array JSON mempertahankan setiap elemen dan NULL, dan fungsi JSON membacanya.

    Baris laporan: type_replaced

  • ranges, geometric types, tsvector, xml, hstore, composite and extension types

    longtext berisi teks PostgreSQL

    MariaDB tidak punya tipe yang setara, jadi setiap nilai mempertahankan teks yang ditulis PostgreSQL.

    Baris laporan: type_replaced

  • json, jsonb

    json

    Nilai JSON yang sama; urutan key dan spasi jsonb mengikuti server.

  • timestamp

    datetime(p)

    timestamp tanpa zona waktu adalah pembacaan jam dinding, seperti datetime.

  • timestamp with time zone

    datetime(p) dalam UTC

    TIMESTAMP di MariaDB hanya sampai 2038, jadi momen disimpan sebagai datetime dalam UTC, momen yang sama apa pun selisih yang ditulis dump.

    Baris laporan: moments_as_utc

  • time

    time(p)

    TIME di MariaDB memuat setiap jam dalam sehari, termasuk 24:00:00.

  • infinity, -infinity, BC dates and years past 9999

    NULL

    MariaDB menyimpan tahun 1000 sampai 9999 tanpa infinity. Nilai itu menjadi NULL dan laporan menghitungnya.

    Baris laporan: date_out_of_range

  • NaN and Infinity in numeric, real and double precision

    NULL

    Angka di MariaDB tidak punya NaN atau Infinity, jadi nilai itu menjadi NULL dan laporan menghitungnya.

    Baris laporan: invalid_value_null

  • NOT NULL columns with values that become NULL

    NOT NULL dihapus

    Kolom yang nilainya harus menjadi NULL tidak bisa mempertahankan NOT NULL, atau pemuatan akan berhenti.

    Baris laporan: not_null_relaxed

  • enum types

    enum(...) dengan label yang sama

    ENUM di MariaDB mempertahankan label sesuai urutannya.

  • uuid, inet, cidr

    uuid sebagai uuid, inet dan cidr sebagai varchar(43)

    MariaDB punya tipe uuid; alamat mempertahankan teksnya, termasuk mask.

  • bytea

    blob, mediumblob, atau longblob; varbinary(3072) dalam key

    Byte tetap byte.

  • bit(n)

    bit(n) hingga 64, text jika lebih

    String bit hingga 64 bit menjadi angka yang dibentuk bit-bitnya; yang lebih panjang mempertahankan digitnya.

  • citext and nondeterministic collations

    perbandingan persis

    Tabel memakai utf8mb4_bin agar teks dibandingkan secara persis, seperti di PostgreSQL; kolom yang mengabaikan huruf besar dan kecil di sumber kehilangan sifat itu.

    Baris laporan: case_insensitive_collation

  • serial, identity

    AUTO_INCREMENT, berlanjut setelah id tertinggi

    Kolom pertama primary key yang dihitung; penghitung berlanjut dari posisi sequence.

  • a second serial or identity column in a table

    bilangan bulat biasa

    MariaDB menghitung satu kolom per tabel; kolom lain mempertahankan nilainya tanpa penghitung.

    Baris laporan: counter_dropped

  • sequences not owned by a column

    CREATE SEQUENCE, pada nilai yang diberikannya berikutnya

    Sequence MariaDB bekerja dengan cara yang sama.

  • generated columns

    kolom generated, STORED seperti di sumber

    MariaDB menghitungnya dengan cara yang sama.

  • generated columns with functions MariaDB lacks

    kolom biasa

    Rumus yang tidak bisa ditulis untuk MariaDB menyisakan kolom biasa dan satu baris laporan.

    Baris laporan: generated_not_translated

  • defaults with functions MariaDB lacks, and defaults from a sequence

    tanpa default

    Default yang tidak bisa ditulis untuk MariaDB dihilangkan dan dilaporkan.

    Baris laporan: default_not_translated

  • CHECK constraints

    diterjemahkan, langsung di CREATE TABLE

    MySQL 8.0.16 dan MariaDB menerapkannya; MySQL 5.7 menyimpannya tanpa memeriksa.

  • CHECK constraints with functions MariaDB lacks

    tidak dibuat

    CHECK yang tidak bisa ditulis untuk MariaDB dihilangkan dan dilaporkan.

    Baris laporan: check_skipped

  • CHECK ... NOT VALID

    tidak dibuat

    PostgreSQL tidak pernah memeriksa baris yang sudah ada sebelumnya, jadi baris itu bisa melanggarnya.

    Baris laporan: check_not_valid

  • gin, gist, brin and hash indexes, partial and expression indexes

    tidak dibuat

    MariaDB hanya punya indeks b-tree, teks lengkap, dan spasial, pada kolom utuh, tanpa WHERE.

    Baris laporan: index_skipped

  • foreign keys

    foreign key, dimuat dengan FOREIGN_KEY_CHECKS=0

    Baris dimuat dalam urutan apa pun, dan key memeriksa baris baru sesudahnya.

  • foreign keys to tables the dump doesn't create

    tidak dibuat

    Key tidak bisa merujuk ke tabel yang tidak ada.

    Baris laporan: foreign_key_skipped

  • partitioned tables

    satu tabel dengan baris dari setiap partisi

    Barisnya sama; partisi ulang tabel di MariaDB jika diperlukan.

    Baris laporan: partitions_dropped

  • schemas

    satu database, nama tabel diawali nama skemanya

    Skema di MariaDB adalah database, yang tidak bisa dibuat oleh skrip yang dimuat ke satu database; tabel di public mempertahankan namanya.

    Baris laporan: schemas_merged

  • views, functions, procedures, triggers, rules, policies, extensions and types

    dicantumkan di laporan

    Kodenya ditulis dalam bahasa PostgreSQL, jadi dicantumkan agar Anda buat ulang.

    Baris laporan: not_converted_objects

  • dumps without CREATE TABLE (--data-only)

    tipe dibaca dari nilainya

    Dump yang hanya berisi data hanya punya baris, jadi tipenya berasal dari nilainya.

    Baris laporan: no_schema

  • expressions in INSERT values

    NULL

    Konverter yang tidak menjalankan database tidak bisa mengevaluasinya.

    Baris laporan: expression_value

  • types IntoSQL doesn't know

    longtext

    Teks memuat nilai apa pun; ubah tipenya setelah pemuatan.

    Baris laporan: unknown_type

  • text that isn't valid in its encoding

    byte yang rusak menjadi karakter pengganti

    Teks harus berupa utf8mb4 yang valid.

    Baris laporan: invalid_utf8_replaced

  • text decoded twice (ñ)

    disalin apa adanya

    Dump berisi persis karakter ini, jadi karakter itu disalin; laporan menunjukkannya.

    Baris laporan: mojibake_suspected

Di PostgreSQLDi MariaDBBaris laporan
booleantinyint(1)BOOLEAN di MariaDB adalah TINYINT(1): true adalah 1 dan false adalah 0.
varchar(n), char(n), textvarchar(n) hingga 1024 karakter, char(n) hingga 255, text jika lebihTeks mempertahankan setiap karakter sebagai utf8mb4. Kolom dalam key paling banyak varchar(768), batas terpanjang key.
numeric(p,s) past 65 digits or 30 decimals, and numeric values past what decimal(65,30) holdsvarchardecimal di MariaDB memuat 65 digit dengan 30 desimal. Angka yang lebih lebar disimpan sebagai teks agar setiap digit tetap persis; numeric tanpa presisi menjadi decimal(65,30) jika nilainya muat.decimal_as_text
moneydecimal(19,2)MariaDB tidak punya tipe money. Jumlahnya disimpan sebagai angka, tanpa simbol mata uang yang ditambahkan locale server.type_replaced
intervalvarchar(100) berisi teks PostgreSQLTIME di MariaDB memuat durasi hingga 838 jam, tetapi interval punya bulan dan hari; teksnya mempertahankan setiap bagian.type_replaced
arrays (integer[], text[]...)array jsonMariaDB tidak punya array. Array JSON mempertahankan setiap elemen dan NULL, dan fungsi JSON membacanya.type_replaced
ranges, geometric types, tsvector, xml, hstore, composite and extension typeslongtext berisi teks PostgreSQLMariaDB tidak punya tipe yang setara, jadi setiap nilai mempertahankan teks yang ditulis PostgreSQL.type_replaced
json, jsonbjsonNilai JSON yang sama; urutan key dan spasi jsonb mengikuti server.
timestampdatetime(p)timestamp tanpa zona waktu adalah pembacaan jam dinding, seperti datetime.
timestamp with time zonedatetime(p) dalam UTCTIMESTAMP di MariaDB hanya sampai 2038, jadi momen disimpan sebagai datetime dalam UTC, momen yang sama apa pun selisih yang ditulis dump.moments_as_utc
timetime(p)TIME di MariaDB memuat setiap jam dalam sehari, termasuk 24:00:00.
infinity, -infinity, BC dates and years past 9999NULLMariaDB menyimpan tahun 1000 sampai 9999 tanpa infinity. Nilai itu menjadi NULL dan laporan menghitungnya.date_out_of_range
NaN and Infinity in numeric, real and double precisionNULLAngka di MariaDB tidak punya NaN atau Infinity, jadi nilai itu menjadi NULL dan laporan menghitungnya.invalid_value_null
NOT NULL columns with values that become NULLNOT NULL dihapusKolom yang nilainya harus menjadi NULL tidak bisa mempertahankan NOT NULL, atau pemuatan akan berhenti.not_null_relaxed
enum typesenum(...) dengan label yang samaENUM di MariaDB mempertahankan label sesuai urutannya.
uuid, inet, cidruuid sebagai uuid, inet dan cidr sebagai varchar(43)MariaDB punya tipe uuid; alamat mempertahankan teksnya, termasuk mask.
byteablob, mediumblob, atau longblob; varbinary(3072) dalam keyByte tetap byte.
bit(n)bit(n) hingga 64, text jika lebihString bit hingga 64 bit menjadi angka yang dibentuk bit-bitnya; yang lebih panjang mempertahankan digitnya.
citext and nondeterministic collationsperbandingan persisTabel memakai utf8mb4_bin agar teks dibandingkan secara persis, seperti di PostgreSQL; kolom yang mengabaikan huruf besar dan kecil di sumber kehilangan sifat itu.case_insensitive_collation
serial, identityAUTO_INCREMENT, berlanjut setelah id tertinggiKolom pertama primary key yang dihitung; penghitung berlanjut dari posisi sequence.
a second serial or identity column in a tablebilangan bulat biasaMariaDB menghitung satu kolom per tabel; kolom lain mempertahankan nilainya tanpa penghitung.counter_dropped
sequences not owned by a columnCREATE SEQUENCE, pada nilai yang diberikannya berikutnyaSequence MariaDB bekerja dengan cara yang sama.
generated columnskolom generated, STORED seperti di sumberMariaDB menghitungnya dengan cara yang sama.
generated columns with functions MariaDB lackskolom biasaRumus yang tidak bisa ditulis untuk MariaDB menyisakan kolom biasa dan satu baris laporan.generated_not_translated
defaults with functions MariaDB lacks, and defaults from a sequencetanpa defaultDefault yang tidak bisa ditulis untuk MariaDB dihilangkan dan dilaporkan.default_not_translated
CHECK constraintsditerjemahkan, langsung di CREATE TABLEMySQL 8.0.16 dan MariaDB menerapkannya; MySQL 5.7 menyimpannya tanpa memeriksa.
CHECK constraints with functions MariaDB lackstidak dibuatCHECK yang tidak bisa ditulis untuk MariaDB dihilangkan dan dilaporkan.check_skipped
CHECK ... NOT VALIDtidak dibuatPostgreSQL tidak pernah memeriksa baris yang sudah ada sebelumnya, jadi baris itu bisa melanggarnya.check_not_valid
gin, gist, brin and hash indexes, partial and expression indexestidak dibuatMariaDB hanya punya indeks b-tree, teks lengkap, dan spasial, pada kolom utuh, tanpa WHERE.index_skipped
foreign keysforeign key, dimuat dengan FOREIGN_KEY_CHECKS=0Baris dimuat dalam urutan apa pun, dan key memeriksa baris baru sesudahnya.
foreign keys to tables the dump doesn't createtidak dibuatKey tidak bisa merujuk ke tabel yang tidak ada.foreign_key_skipped
partitioned tablessatu tabel dengan baris dari setiap partisiBarisnya sama; partisi ulang tabel di MariaDB jika diperlukan.partitions_dropped
schemassatu database, nama tabel diawali nama skemanyaSkema di MariaDB adalah database, yang tidak bisa dibuat oleh skrip yang dimuat ke satu database; tabel di public mempertahankan namanya.schemas_merged
views, functions, procedures, triggers, rules, policies, extensions and typesdicantumkan di laporanKodenya ditulis dalam bahasa PostgreSQL, jadi dicantumkan agar Anda buat ulang.not_converted_objects
dumps without CREATE TABLE (--data-only)tipe dibaca dari nilainyaDump yang hanya berisi data hanya punya baris, jadi tipenya berasal dari nilainya.no_schema
expressions in INSERT valuesNULLKonverter yang tidak menjalankan database tidak bisa mengevaluasinya.expression_value
types IntoSQL doesn't knowlongtextTeks memuat nilai apa pun; ubah tipenya setelah pemuatan.unknown_type
text that isn't valid in its encodingbyte yang rusak menjadi karakter penggantiTeks harus berupa utf8mb4 yang valid.invalid_utf8_replaced
text decoded twice (ñ)disalin apa adanyaDump berisi persis karakter ini, jadi karakter itu disalin; laporan menunjukkannya.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.

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

Tidak terjawab di sini? Tulis ke kami dari halaman kontak, dan seseorang akan membalas. Halaman kontak

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.