contoh CRUD PHP sederhana dengan postgres
Pastikan git telah terinstall
git clone git@github.com:aksamedia/crud-php-postgres.git
cd crud-php-postgres-
Pastikan docker telah terinstall
-
Download image postgres sesuai versi yang dibutuhkan
# versi terbaru docker pull postgres # versi 9.6 docker pull postgres:9.6
NB: bisa install lebih dari 1 versi image
Untuk menjalankan image prosgres, ada 2 cara. Bisa langsung menggunakan perintah docker, atau bisa juga menggunakan perintah docker-compose (cara ini lebih direkomendasikan untuk kemudahan).
mkdir -p data/db/postgresdocker run -d \
--name server-postgres-96 \
-e POSTGRES_PASSWORD=123456 \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v "/$(pwd)/data/db/postgres":/var/lib/postgresql/data \
-p 5432:5432 \
postgres:9.6Perintah di atas akan membuat container baru dengan nama server-postgres-96, mem-forward port 5432 yang ada di dalam container (docker) ke port 5432 yang ada di host.
Cek apakah docker sudah jalan dengan perintah:
docker psPostgres yang kita jalankan sekarang berada di dalam container, sehingga kita tidak bisa mengaksesnya secara langsung dari komputer host. Yang harus kita lakukan adalah dengan masuk ke dalam container terlebih dahulu.
Perintahnya:
docker exec -ti server-postgres-96 bashSelanjutnya kita sudah masuk ke dalam container server-postgres-96 dan memanggil perintah bash.
Setelah berhasil masuk ke dalam container postgres, kita bisa membuat database menggunakan perintah psql.
psql -U postgresroot@332ef4998d96:/# psql -U postgres
psql (9.6.24)
Type "help" for help.
postgres=# create database database_baru;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------+----------+----------+------------+------------+-----------------------
database_baru | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=#
cat dump.psql | docker exec -i server-postgres-96 psql -U postgres -d database_baruJalankan file index.php dengan web server, contoh:
php -S localhost:5000