Di dalam tulisan kali ini, saya akan membahas beberapa teknik dan beberapa skenario berkenaan dengan proses import dan export database postgresql. Semuanya akan saya bahas dengan menggunakan tools pg_dump
dan pgsql
alias dengan terminal. Tidak menggunakan aplikasi database client yang sifatnya GUI.
Export
Cara export database postgresql sangat sederhana. Kita bisa melakukannya dengan perintah pg_dump [nama-database] > [nama-file]
.
Contoh:
Saya akan mengexport database mahasiswa
e file mahasiswa.psql
.
pg_dump mahasiswa > mahasiswa.psql
Maka perintah di atas akan mengekspor semua tabel dari database mahasiswa
lalu menulis query-nya ke file baru bernama mahasiswa.psql
.
Postgresql automatis menjadikan user yang sedang aktif sebagai user dari database tersebut. Misal kita ingin menggunakan username lain, kita bisa menambahkan flag U
lalu diikuti dengan username.
Contoh jika username saya bernama ibnujakaria
.
pg_dump -U ibnujakaria mahasiswa > mahasiswa.psql
Import
Untuk import, caranya tidak susah. Hampir sama seperti di atas. Hanya saja tool yang digunakan adalah psql
bukan pg_dump
.
Misal, saya punya membuat database baru dengan nama mahasiswa2
, lalu saya akan mengimport hasil dari yang saya export di atas.
Maka saya buat dulu databasenya:
createdb mahasiswa2
Lalu import file mahasiswa.psql
(atau file yang mau diimport) ke database yang baru saja kita buat dengan perintah psql [nama-db-baru] < [nama-file-psql]
.
psql mahasiswa2 < mahasiswa.psql
Sama seperti di atas, kalau kita ingin mendefinisikan username yang lain, kita tinggal menambahkan flag U
.
psql -U ibnujakaria mahasiswa2 < mahasiswa.psql
Duplikasi Database
Ini hal yang sering saya lakukan. Karena dalam project production selalu ada data-data yang baru. Dan data-data tersebut biasanya secara berkala saya duplikat ke project versi testing. Misalkan, nama database untuk production adalah: master_db
, sedangkan nama database untuk testing adalah: testing_db
. Maka ketika saya hendak melakukan testing-testing dengan data yang baru, saya perlu menduplikat isi dari master_db
ke testing_db
. Caranya cukup mudah. Hanya perlu melakukan perintah berikut:
pg_dump master_db | psql testing_db
Terima kasih banyak, sekian tutorial kali ini.