Belajar Database PostgreSQL #1: Perkenalan dan Instalasi
Perkenalan
PostgreSQL adalah sebuah produk database relasional yang termasuk dalam kategori free open source software (FOSS).
PostgreSQL terkenal karena fitur-fitur yang advanced dan pendekatan rancangan modelnya menggunakan paradigma object-oriented, sehingga sering dikategorikan sebagai ** Object Relational Database Management System (ORDBMS)**.
Persiapan
Disini saya akan menggunakan Docker & docker-compose untuk menjalankan service PostgreSQL. Jika tidak ingin menggunakan Docker, kita bisa langsung install PostgreSQL di OS kalian masing-masing, link download postgresql.org/download.
Docker
Silahkan download dan install
docker
dandocker-compose
Link download: docker.com/products/docker-desktopJika sudah terinstall, jalankan Docker, untuk mengetes apakah sudah berjalan silahkan buka terminal lalu ketikan
docker-compose -h
, jika Docker sudah berjalan maka akan ada response mengenai perintah-perintah Docker.Buat direktori dan file baru dengan nama
docker-compose.yml
mkdir postgresql
cd postgresql
touch docker-compose.yml
Isi file docker-compose.yml
dengan kode berikut
version: '3.1'
services:
db:
container_name: pg
image: postgres:12.5-alpine
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
volumes:
- pg_data:/var/lib/postgresql/data
adminer:
container_name: adminer
image: adminer
restart: always
ports:
- 8080:8080
volumes:
pg_data:
Jadi kita akan buat 2 container dengan nama **pg ** (PostgreSQL) dan adminer. *Adminer *ini adalah UI untuk Database Management seperti PhpMyAdmin. Pada container pg kita akan mengambil image postgres versi 12.5, lalu untuk environtment kita buat username dan password postgresql dengan nilai admin. Kita juga buat volumes di docker agar ketika service pg berhenti data tetap tersimpan. Jika sudah silahkan disimpan pada file docker-compose.yml
.
- Kembali ke terminal jalankan perintah
docker-compose up -d
untuk membuat dan menjalankan semua service yang ada pada file docker-compose.yml.
Untuk melihat apakah semua service sudah berjalan ketikan perintah docker ps
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6adffd3e643a postgres:12.5-alpine "docker-entrypoint.s…" 35 hours ago Up 15 minutes 0.0.0.0:5432->5432/tcp pg
6f8d88287a93 adminer "entrypoint.sh docke…" 35 hours ago Up 15 minutes 0.0.0.0:8080->8080/tcp adminer
Masuk ke container pg, jalankan perintah
docker exec -it pg sh
Masuk ke service postgresql, jalankan perintah
psql -h localhost -U admin
. Jika diminta password isi dengan admin (sesuaikan dengan yang ada pada file docker-compose.yml) lalu enter.Sekarang kita sudah berhasil login ke postgresql, untuk melihat list database jalankan perintah
\l
.
admin=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+------------+------------+-------------------
admin | admin | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | admin | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | admin | UTF8 | en_US.utf8 | en_US.utf8 | =c/admin +
| | | | | admin=CTc/admin
template1 | admin | UTF8 | en_US.utf8 | en_US.utf8 | =c/admin +
| | | | | admin=CTc/admin
(4 rows)
- Sampai sini sudah selesai persiapannya, terakhir kita akan coba login ke adminer, buka browser lalu masuk ke
http://localhost:8080/
, nanti akan tampil seperti ini
Untuk mengisi bagian server kita harus melihat IP Address dari container pg, untuk melihat nya kita harus keluar dulu dari container atau buka terminal baru lalu jalankan perintah docker container inspect pg
, lihat pada bagian Networks.pg_default.IPAddress, misal IPAddress saya disini 172.24.0.2. Jika berhasil login tampilannya seperti ini
Bagaimana menghentikan semua service / container?
Jalankan perintah docker-compose down
Bagaimana menjalankan kembali semua service / container?
Pastikan berada pada direktori yang sama dengan file docker-compose.yml
lalu jalankan perintah docker-compose up -d
Penutup
Sekarang kita sudah berhasil memasang dan menyiapkan PostgreSQL dengan Docker. Tunggu artikel lainnya ya seputar PostgreSQL.