Saturday, July 8, 2023

Install PostgreSQL 14 di Linux berbasis Ubuntu

Install PostgreSQL 14 di Linux berbasis Ubuntu

 

Step 1 – Install PostgreSQL 14 on Debian 11 | Debian 10

PostgreSQL is available in the default Debian repositories but the available versions are not up to date. Check the available versions using the command:

sudo apt-cache search postgresql | grep postgresql

In this guide, we are interested in PostgreSQL 14 which is not provided in the default repositories. Therefore, we are required to add a repository that provides the package.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Import the GPG key for the added repository.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Next, update your APT package index.

sudo apt -y update

Tulisan ini saya copy dari sumber website: https://computingforgeeks.com/how-to-install-postgresql-14-on-debian/

Langkah yang dilakukan adalah sebagai berikut:

Now install PostgreSQL 14 on Debian 11/Debian 10 using the command below.

sudo apt install postgresql-14

Verify your PostgreSQL 14 installation as below.

$ sudo -u postgres psql -c "SELECT version();"
                                                           version                                                           
-----------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.8 (Debian 14.8-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit

With a complete installation, PostgreSQL 14 will be initialized. Check the status of the service as below. 

$ systemctl status postgresql    

Referensi:

https://computingforgeeks.com/best-books-to-learn-postgresql-database/

https://computingforgeeks.com/how-to-install-postgis-on-ubuntu-linux/

https://zonabiner.com/install-postgresql-ubuntu-20-04

https://askubuntu.com/questions/1010442/how-to-uninstall-the-postgresql


Tuesday, October 18, 2022

Mengkoneksikan PostgreSQL di Droplet Digital Ocean dengan PgAdmin


Digital Ocean


  1. Buat Droplet
  1. Koneksi ke Droplet
sudo apt update

apt install postgresql postgresql-contrib

update-rc.d postgresql enable

service postgresql start

service postgresql status


Output:
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2022-10-18 10:09:53 UTC; 2min 7s ago
   Main PID: 4320 (code=exited, status=0/SUCCESS)
        CPU: 1ms

cd ../etc/postgresql

ls

cd 14/main/

ls

Output: 
conf.d  environment  pg_ctl.conf  pg_hba.conf  pg_ident.conf  postgresql.conf  start.conf

ls -la

Output:
drwxr-xr-x 3 postgres postgres  4096 Oct 18 10:09 .
drwxr-xr-x 3 postgres postgres  4096 Oct 18 10:09 ..
drwxr-xr-x 2 postgres postgres  4096 Oct 18 10:09 conf.d
-rw-r--r-- 1 postgres postgres   315 Oct 18 10:09 environment
-rw-r--r-- 1 postgres postgres   143 Oct 18 10:09 pg_ctl.conf
-rw-r----- 1 postgres postgres  5002 Oct 18 10:09 pg_hba.conf
-rw-r----- 1 postgres postgres  1636 Oct 18 10:09 pg_ident.conf
-rw-r--r-- 1 postgres postgres 29032 Oct 18 10:09 postgresql.conf
-rw-r--r-- 1 postgres postgres   317 Oct 18 10:09 start.conf

sudo nano pg_hba.conf

Kemudian masukan pada baris paling akhir:

host    all    all    0.0.0.0/0    trust
host    all    all    ::/0   trust

sudo nano postgresql.conf

Edit baris ini, hilangkan komentar:

listen_addresses = '*'          # what IP address(es) to listen on;

service postgresql restart

Koneksi dengan PgAdmin4

  1. Buka PgAdmin4, lalu di bagian menu kiri klik kanan Create Server
  2. Pada Tab General masukan nama koneksi
  3. Pada Tab Connection, masukan Host dengan IP dari Droplet DigitalOcean
  4. Kemudian masukan port 5432, maintenance database postgres, dan Username postgres lalu klik Save.
  5. Maka berhasil koneksi ke database PostgreSQL di Droplet DigitalOcean.
Silahkan buat database dan mebuat tabel.

Install extensi postgis

sudo apt install postgis postgresql-14-postgis-3

Misal buat database dan user

sudo -i -u postgres

lalu masuk ke postgrsql

createuser user123

createdb db_xxx -O user123

psql -d db_xxx

Menambahkan/menggati password untuk user1

ALTER USER user123 WITH PASSWORD password_baru

CREATE EXTENSION postgis;

Melihat List Database

\l

Pindah database

\c <nama_database>

List Table

\dt

Membuka port untuk Postgresql

sudo ufw allow <port>

Restart PostgreSQL

service postgresql restart



Referensi:
https://computingforgeeks.com/how-to-install-postgis-on-ubuntu-linux/

https://docs.digitalocean.com/products/databases/postgresql/how-to/connect/

https://www.bigbinary.com/blog/configure-postgresql-to-allow-remote-connection

https://chartio.com/resources/tutorials/how-to-list-databases-and-tables-in-postgresql-using-psql/

Sunday, October 9, 2022

Membuat Aplikasi Django dan PostgreSQL dengan menggunakan Docker cara 1

Membuat Aplikasi Django dan PostgreSQL dengan menggunakan Docker cara 1

Docker adalah layanan yang menyediakan kemampuan untuk mengemas dan menjalankan sebuah aplikasi dalam sebuah lingkungan terisolasi yang disebut dengan container. Dengan adanya isolasi dan keamanan yang memadai memungkinkan kamu untuk menjalankan banyak container di waktu yang bersamaan pada host tertentu. 

Docker adalah software open-source yang digunakan untuk meluncurkan (deploy) aplikasi di dalam container virtual. Dengan container virtual ini (containerization), aplikasi bisa dijalankan secara terisolasi di environment yang kompleks sehingga tidak menimbulkan masalah pada environment lainnya.

Docker ini diperkenalkan pada tahun 2013 oleh Solomon Hykes pada acara PyCon. Beberapa bulan setelahnya docker secara resmi diluncurkan, tepatnya pada tahun 2014.

Cara Kerja Docker

Cara kerja Docker adalah dengan menciptakan sebuah ruang isolasi untuk meluncurkan aplikasi atau layanan. Ruang isolasi ini disebut Container, seperti ‘wadah’ yang akan menampung suatu benda agar tidak tumpah ke area lain.

Penjelasan Singkat tentang Container Docker

Docker container adalah sebuah paket software yang berisi semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu. Semua konfigurasi dan instruksi untuk memulai atau menghentikan container diperintahkan oleh sebuah komponen yang disebut ‘image Docker’.

Container ini menghindarkan user dari masalah kompatibilitas yang mungkin terjadi ketika menjalankan aplikasi di beberapa sistem yang berbeda. Sebab, dengan container ini, software akan berjalan dengan cara yang sama di environment mana pun.

Kapan pun image dijalankan user, container baru akan dibuat.

Pengelolaan container juga mudah berkat bantuan Docker API atau command line interface (CLI). Apabila beberapa container diperlukan, user bisa mengontrolnya dengan Docker compose tool.

Selain container yang baru saja dibahas, arsitektur Docker terdiri dari empat komponen utama, yaitu:

  • Client Docker – komponen utama untuk membuat, mengelola, dan menjalankan aplikasi dalam container. Client Docker adalah metode utama untuk mengontrol server Docker melalui CLI seperti Command Prompt (Windows) atau Terminal (macOS, Linux).
  • Server Docker – juga disebut daemon Docker. Server Docker menunggu permintaan REST API yang dibuat oleh client Docker serta mengelola image dan container.
  • Image Docker – komponen yang memerintahkan server Docker terkait persyaratan tentang cara container Docker dibuat. Image bisa didownload dari website seperti Docker Hub. Anda juga bisa membuat custom image, yaitu dengan membuat Dockerfile dan meneruskannya ke server. Perlu diketahui bahwa Docker tidak menghapus image yang tidak digunakan, jadi user harus menghapus data image sendiri agar tidak menumpuk.
  • Registry Docker – aplikasi sisi server open-source yang digunakan untuk menghosting dan mendistribusikan image Docker. Registry sangat berguna untuk menyimpan image secara lokal dan mengelolanya sepenuhnya. Atau, user bisa mengakses Docker Hub yang tadi disebutkan, yang merupakan repositori image Docker terbesar di dunia.

Fungsi Docker

Docker memiliki banyak fungsi untuk berbagai contoh penerapan. Di bagian ini, kami akan membahas fungsi Docker dan tiga contoh umum penggunaannya.

Mencoba Software Baru

Dengan Docker, Anda bisa mencoba software baru tanpa harus menginstalnya secara manual. Docker juga berguna kalau Anda memerlukan software yang harus disiapkan cepat.

Sebagai contoh, proses setup server MySQL bisa memakan waktu lama. Nah, dengan Docker, Anda hanya memerlukan satu perintah melalui CLI untuk melakukannya.

Mempelajari CLI

Meskipun bisa berjalan pada semua jenis perangkat, tadinya Docker dirancang khusus untuk Linux. Jadi, kami menyarankan agar Anda mengonfigurasinya pada sistem yang berbasis Linux.

Dengan begitu, Anda pun bisa mempelajari administrasi sistem, command line interface, dan scripting lebih lanjut dengan lebih baik.

Mengurangi Risiko Insiden

Apabila terjadi kegagalan hardware, user bisa segera mengembalikan perubahan apa pun yang dibuat kalau tersedia image Docker.

User hanya perlu mengimpor backup image ke perangkat baru, lalu Docker akan membereskan sisanya. Backup image Docker juga berguna saat developer ingin melakukan rollback ke versi lama software tertentu karena adanya bug atau masalah kompatibilitas.

Kelebihan dan Kekurangan Docker

Nah, setelah Anda memahami apa itu Docker dan fungsinya, sebaiknya cari tahu juga kelebihan dan kekurangannya. Meskipun memiliki banyak manfaat, Docker juga memiliki kelemahan dalam beberapa aspek. Di bagian ini, kami akan membahas kelebihan dan kekurangan software ini.

Kelebihan Docker

  • Portabilitas – daya tarik utama Docker adalah portabilitasnya. Docker memungkinkan user membuat atau menginstal aplikasi kompleks di perangkat, dan aplikasi tersebut dijamin bisa berjalan. Docker container memiliki semua yang dibutuhkan aplikasi, hanya dengan sedikit atau bahkan tanpa input dari user.
  • Automasi – dengan bantuan cron job dan Docker container, user bisa mengotomatiskan pekerjaan dengan mudah. Automasi membantu developer menghindari tugas yang membosankan dan repetitif, serta menghemat waktu.
  • Komunitas – Docker memiliki channel Slack khusus, forum komunitas, dan ribuan kontributor di website developer seperti StackOverflow. Terlebih lagi, ada lebih dari 9 juta image container yang dihosting di Docker Hub.

Kekurangan Docker

  • Kecepatan – meskipun akan lebih cepat untuk menjalankan aplikasi melalui Docker container daripada di VM, Docker masih lebih lambat dibandingkan dengan menjalankan aplikasi secara native pada server fisik.
  • Kemudahan penggunaan – Docker tidak dimaksudkan untuk menjalankan aplikasi yang memerlukan Graphical User Interface (GUI). Artinya, user harus familiar dengan baris perintah/command line, dan melakukan semua tindakan di sana. Alur belajar yang rumit, keterbatasan OS tertentu, dan frekuensi update yang lumayan menjadikan Docker sulit untuk dipahami. Bahkan, ketika Anda merasa sudah memahami Docker luar dalam, masih ada orkestrasi yang perlu dipertimbangkan, yang menjadikannya makin kompleks.
  • Keamanan – Docker berjalan pada sistem operasi host, yang berarti software berbahaya apa pun yang bersembunyi di balik containernya bisa sampai ke mesin host.

Docker vs Virtual Machine

Meski Docker dan Virtual Machine (VM) memiliki fungsi yang serupa, ada perbedaan dari keduanya dalam hal performa, dukungan OS, dan portabilitas.

Perbedaan Docker dan Virtual Machine adalah, container Docker menggunakan OS yang sama dengan host, sedangkan VM memiliki OS tamu yang berjalan dari sistem host. Metode operasi ini memengaruhi performa, kebutuhan hardware, dan dukungan OS.

Agar lebih mudah, simak detail perbandingannya pada tabel di bawah ini.

DockerVirtual Machine
OSMenggunakan OS yang sama antar-containerOS baru untuk setiap VM
KeamananKurang aman karena OS dan kernel digunakan bersamaLebih aman karena VM tidak berbagi sistem operasi
PerformaPerforma cepat bahkan dengan beberapa containerMakin banyak VM, performa makin kurang stabil
Waktu bootingCepat (dalam hitungan detik)Lambat (dalam hitungan menit)
MemoriRinganMemerlukan banyak memori
Kebutuhan ruang penyimpananBiasanya dalam ukuran megabyteBiasanya dalam ukuran gigabyte
PortabilitasMudah diluncurkan di berbagai lingkunganVM sulit di-port ke sistem lain

Meskipun teknologi container Docker lebih unggul pada hampir semua aspek, VM lebih aman karena sistem operasinya tetap terpisah (independen) dari hardware.

Oke kali ini kit acoba akan membuat aplikasi Django dan PostgreSQL di Windows dengan menggunakan Docker, langkah-langkahnya sebagai berikut:

  • Download aplikasi Docker disini
  • Buka command prompt dan tempatkan di direktori yang telah ditentukan
  • Buat direktori kerja, misal dengan nama djangodockertest. Di command promt masukan perintah:
mkdir djangodockertest
  • Masuk ke direktori kerja yang tadi dibuat
cd djangodockertest
  • Buat file baru dengan nama requirements.txt untuk menyimpan daftar library atau paket aplikasi yang akan diinstal yang dibutuhkan Django. Misal dalam contoh ini saya menggunakan  vim  sebagai editor teks seperti yang ada di Linux atau Mac. Untuk mendonload aplikasi silahkan dapatkan disini
vim requirements.txt
  • Masukan daftar aplikasi
Django~=4.0.0
psycopg2-binary==2.9.3
  • Buat file dengan nama Dockerfile
vim Dockerfile
  • Masukan kode berikut
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code/
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
  • Buat file dengan nama docker-compose.yml
vim docker-compose.yml
  • Masukan kode
version: "3.9"

services:
    db:
      image: postgres
      volumes:
      - ./data/db:/var/lib/postgresql/data
      environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
    web:
      build: .
      command: python manage.py runserver 0.0.0.0:8000
      volumes:
        - .:/code
      ports:
        - "8000:8000"
      depends_on:
        - db

  • Buat project baru Django, misal dengan nama djangodockertest
 vim docker-compose run web django-admin startproject djangodockertest
  • Ubah setingan Database di file settings.py yang terdapat di folder djangoprojecttest. dengan catatan di komputer lkal sudah diinstal PostgreSQL dan buat database tertentu.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',     #sesuaikan
        'USER': 'postgres',     #sesuaikan
        'PASSWORD': 'password', #sesuaikan
        'HOST': 'db', #sesuai setingan di docker-compose.yml
        'PORT': 5432,
        }
}
  • Buat makemigrations
docker-compose run web python manage.py makemigrations
  • Lakukan migrasi
docker-compose run web python manage.py migrate
  • Jalankan perintah docker-compose up
docker-compose up
  • Test buka server dengan buka di browser dan masuk ke 127.0.0.1:8000, jika berhasil maka akan tampil halaman awal aplikasi Django.
  • Selanjutnya, lakukan langkah-langkah untuk membuat user admin dan lain sebagainya. 
  • Jika ingin mematikan service Docker, maka ketikan perintah: 
docker-compose down



Demikian contoh sederhana cara menggunakan Docker untuk membuat aplikasi Django dan PostgreSQL, semoga bermanfaat. @wawanhn



Sumber:
https://www.hostinger.co.id/tutorial/apa-itu-docker?
https://www.dicoding.com/blog/apa-itu-docker/

Tuesday, July 21, 2020

Menangani Error “Unable to write inside TEMP environtment variable path.” Pada PostgreSQL



Dalam tulisan ini saya akan berbagi cara menangani masalah atau error pada saat install postgreSQL. Error yang biasa muncul salah satunya adalah Unable to write inside TEMP environtment variable path.

 

Untuk mengatasi maslah tersebut bisa dilakukan langkah-langkah sebagai berikut:

1. Masuk ke regedit, caranya adalah pada keyboard tekan window + r kemudian ketik regedit, atau bisa juga ketik regedit pada kotak search di dalam start menu.

 

2. Setelah masuk ke menu regedit, cari menu HKEY_CURRENT_USER → Software  Microsoft  Windows Script Host  Setting. Pada pilihan Enabled, beri nilai 1 pada value data. 

 

3. Selanjutnya cari menu HKEY_LOCAL_MACHINE  Software  Microsoft  Windows Script Host  Setting. pilihan Enabled, beri nilai 1 pada value data.

 

4. Jika tidak ada pilihan Enabled, bisa buat sendiri dengan cara: Klik kanan  New  DWORD (untuk versi 32bit) atau QWORD (untuk versi 64bit). Beri nama Enabled kemudian isi value data dengan nilai 1.

Setelah semua langkah diatas dilakukan coba instal kembali PosgreSQL. Seharusnya error sudah tidak terjadi lagi. Demikian sedikit sharing dari saya, terima kasih semoga bermanfaat. @wawanhn.

Membuat Database PostgreSQL Gratis di AWS

Membuat Database PostgreSQL Gratis di AWS
Amazon Web Services adalah sekumpulan layanan-layanan berbasis Cloud Computing yang di sediakan oleh Amazon sejak tahun 2002. Meskipun salah satu perusahaan raksasa internet ini sering kita kenal untuk membeli buku dan lagu, tetapi sekarang Amazon telah menambah layanannya dalam hal infrastrutktur cloud computing. Amazon Web Services ini menyediakan layanan-layanan nya yang saling terintegrasi dan mudah kustomisasi. Pada tahun 2006, amazon mengenalkan Amazon’s Elastic Compute cloud (EC2) sebagai commercial web service yang menyediakan akses cloud kepada perusahaan dan individu untuk menyewa komputer storage yang bisa digunakan sebagai platform pengembangan aplikasi secara online, inilah awal dari IaaS, yaitu perusahaan yang menyediakan infrastruktur sebagai sebuah layanan [1].

Kita dapat mendapatkan layanan gratis (free trial) dengan mendaftar AWS dialamat ini. Saat mendaftar AWS pertama kali selanjutnya untuk mengaktifkan layanan yang bisa kita gunakan dengan gratis, maka pada saat pendaftaran kita akan diverifikasi untuk tagihan atau biling dengan menggunakan kartu kredit dengan sebesar $1.

Oke saat ini, setelah kita punya akun AWS kita akan coba buat database PostgreSQL yang nantinya akan diakses dari client dengan menggunakan PgAdmin. Lankah yang dilakuka adalah:


  • Login ke website AWS
  • Selanjutnya pada halaman utama kita masuk ke RDS.

  • Kemudian setelah tampil halaman RDS, buat database dengan memilih button Create database

  • Kemudian pilih metode pembuatan, misal metode Standard Create, pilih database engine PostgreSQL, versi database dan pilih DB Instance seize Free tier (karena kita pilih yang gratis).
  • Kemudian lakukan setting DB instance identifier untuk menentukan nama database.
  • Pada bagian Credentials settings, tentukan nama user dan password untuk mengakses database.
  • Selanjutnya pada bagian Additional Connectivity Configuration, pilih yes pada bagian setting publicly accessible sehingga bisa diakses dari client.
  • Setelah selesai semua setting lalu pilih Create database, tunggu proses pembuatan database yang bisa berlangsung beberapa waktu. Dan jika berhasil maka database kita bisa dilihat di halaman database seperti ini.

  • Selanjutnya klik button View credential details untuk melihat infomasi database kita. Terdapat informasi: nama database, user, dan endpoint (host dari database kita), dan satu lagi data yang dibutuhkan yaitu port (dimana defaultnya 5432).

  • Selanjutnya dalam tutorial selanjutnya kiata akan menggunakan SQL Workbench dan pgAdmin untuk mengakses database tersebut. Jika belum punya pgAdmin maka download dari sini  sesuai dengan jenis sistem operasi dan install di komputer kita.

sekian dulu tulisan ini semoga bermanfaat. @wawanhn


Referensi:
[1] https://id.wikipedia.org/wiki/Amazon_Web_Services

Tuesday, February 25, 2020

Konversi File SHP ke Postgresql dengan menggunakan file SQL

Konversi File SHP ke Postgresql dengan menggunakan file SQL

Saat kita membuat geodatabase dengan mengggunakan PostgreSQL kita akan menginputkan data dari berbagai format data GIS. Salah satu format data yang paling sering digunakan adalah shapefile (shp). Bagaimana memasukan atau konversi data tersebut ke PostgreSQL akan saya bahas dalam tulisan ini.

Salah satu cara yang bisa dilakukan untuk menginput data atau file shp ke geodatabase  PostgreSQLdigunakan adalah dengan menggunakan file .SQL,  yaitu sebagai berikut:


  • Misal dalam latihan ini akan menginput data spasial Batas_Kecamatan.shp, maka letakan file shp tersebut dalam sebuah folder kerja kita.
  • Kemudian dengan menggunakan command prompt ketikan perintah dengan format shp2pgsql -I [nama file shp] public.[nama table] > [nama output file .sql] dalam langkah ini saya ketikan perintah shp2pgsql -I Batas_Kecamatan.shp public.Batas_Kecamatan > Batas_Kecamatan.sql


  • Setelah perintah tersebut makan dihasilkan file Batas_Kecamatan.sql dalam folder kerja. Selanjutnya adalah mengkonversi file .sql menjadi sebuah tabel di PostgreSQL. Dalam latihan kali ini kita akan mengkonversi file .sql menjadi tabel dengan nama Batas_Kecamatan dalam database yang ada di Server PostgreSQL. Misal dalam hal ini saya simpan di database Test (jika belum ada database dengan nama Test, maka sebelumnya buat dulu database tersebut). Ketikan perintah dengan format: shp2pgsql -U [username] -f [nama file .SQL] -d [database]. Dalam langkah ini ketikan perintah shp2pgsql -U postgres -f Batas_Kecamatan.sql -d Test.
  • Jika perintah tersebut berhasil di eksekusi maka selesailah mengkonversi file shapefile (shp) kedalam geodatabase PostgreSQL dengan menggunakan file .SQL. Untuk melihat hasilnya dapat dilihat dengan menggunakan PgAdmin atau dengan menggunakan perintah di command prompt.
  • Untuk perintah di command prompt ketikan: psql -U postgres -d Test. Dengan penjelasan bahwa postgres adalah nama username dan Test adalah nama database. Dan setelah masuk ke database Test, silahkan ketikan \dt untuk melihat tabel-tabel yang ada dalam database, seperti terlihat dalam gambar di bawah.

Demikian tulisan singkat ini, di tulisan selanjutnya akan memaparkan cara konversi shapefile (shp) ke dalam PostgreSQL dengan cara lain. Semoga bermanfaat @wawanhn