Gratis Saldo $50 Cloud Server

Harga Cloud Server Cuma $5/bulan

Daftar Sekarang

7 min read

Cara Menggunakan PostgreSQL dengan Aplikasi Ruby on Rails di Ubuntu 18.04

Iman Sugirman

Introduction

Saat menggunakan kerangka kerja Ruby on Rails, aplikasi Anda diatur secara default untuk menggunakan SQLite sebagai basis data. SQLite adalah database relasional yang ringan, portabel, dan ramah pengguna yang berkinerja sangat baik di lingkungan dengan memori rendah, dan akan bekerja dengan baik dalam banyak kasus. Namun, untuk aplikasi yang sangat kompleks yang membutuhkan integritas data yang lebih andal dan ekstensi program, basis data PostgreSQL akan menjadi pilihan yang lebih kuat dan fleksibel. Untuk mengonfigurasi pengaturan Ruby on Rails Anda untuk menggunakan PostgreSQL, Anda perlu melakukan beberapa langkah tambahan untuk mengaktifkan dan menjalankannya.

Dalam tutorial ini, Anda akan mengatur lingkungan pengembangan Ruby on Rails yang terhubung ke database PostgreSQL pada server Ubuntu 18.04. Anda akan menginstal dan mengkonfigurasi PostgreSQL, dan kemudian menguji pengaturan Anda dengan membuat aplikasi Rails yang menggunakan PostgreSQL sebagai server database-nya.

Prasyarat

Tutorial ini membutuhkan yang berikut:

  • Server Ubuntu 18.04 diatur dengan mengikuti Panduan Pengaturan Server Awal untuk Ubuntu 18.04, termasuk pengguna non-root dengan hak sudo dan firewall.
  • Lingkungan pengembangan Ruby on Rails diinstal di server Ubuntu 18.04 Anda. Untuk mengatur ini, ikuti panduan kami tentang Cara Install Ruby on Rails dengan rbenv di Ubuntu 18.04. Tutorial ini akan menggunakan versi 2.6.3 dari Ruby dan 5.2.3 dari Rails; untuk informasi tentang versi terbaru, periksa situs resmi untuk Ruby dan Rails.

Menginstal PostgreSQL

Untuk mengonfigurasi Ruby on Rails untuk membuat aplikasi web Anda dengan PostgreSQL sebagai basis data, Anda terlebih dahulu akan menginstal basis data ke server Anda.

Dengan menggunakan hak sudo, perbarui indeks paket APT Anda untuk memastikan bahwa repositori Anda mutakhir:

sudo apt update

Selanjutnya, instal PostgreSQL dan perpustakaan pengembangannya:

sudo apt install postgresql postgresql-contrib libpq-dev

Pada perintah sebelumnya, paket postgresql memegang program PostgreSQL utama, sementara postgresql-contrib menambahkan beberapa fitur PostgreSQL yang memperluas kemampuannya. libpq-dev adalah pustaka PostgreSQL yang memungkinkan klien untuk mengirim pertanyaan dan menerima tanggapan dari server back-end, yang akan memungkinkan aplikasi Anda untuk berkomunikasi dengan database-nya.

Setelah PostgreSQL dan dependensinya diinstal, langkah selanjutnya adalah membuat peran yang akan digunakan aplikasi Rails Anda nanti untuk membuat database Anda.

Membuat Peran Basis Data Baru

Di PostgreSQL, roles dapat digunakan dengan cara yang sama seperti pengguna di Linux untuk mengatur izin dan otorisasi. Langkah ini akan menunjukkan kepada Anda cara membuat peran pengguna super baru untuk nama pengguna Linux Anda yang akan memungkinkan Anda untuk beroperasi dalam sistem PostgreSQL untuk membuat dan mengonfigurasi basis data.

Untuk membuat peran super pengguna PostgreSQL, gunakan perintah berikut, gantikan kata yang disorot dengan nama pengguna Ubuntu 18.04 Anda:

sudo -u postgres createuser -s sammy -P

Karena Anda menentukan flag -P, Anda akan diminta memasukkan kata sandi untuk peran baru Anda. Masukkan kata sandi yang Anda inginkan, pastikan untuk merekamnya sehingga Anda dapat menggunakannya dalam file konfigurasi di langkah selanjutnya.

Di perintah ini, Anda menggunakan createuser untuk membuat peran bernama sammy. -S memberi pengguna ini hak istimewa pengguna super, dan sudo -u memungkinkan Anda untuk menjalankan perintah dari akun postgres yang secara otomatis dibuat saat menginstal PostgreSQL.

Jika Anda tidak menggunakan flag -p dan ingin mengatur kata sandi untuk peran setelah Anda membuatnya, masukkan konsol PostgreSQL dengan perintah berikut:

sudo -u postgres psql

Anda akan menerima output berikut, bersama dengan prompt untuk konsol PostgreSQL:

Output
psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))
Type "help" for help.

postgres=#

Konsol PostgreSQL ditandai oleh prompt postgres=#. Pada prompt PostgreSQL, masukkan perintah ini untuk mengatur kata sandi untuk peran basis data baru, mengganti nama yang disorot dengan yang Anda buat:

\password sammy

PostgreSQL akan menanyakan kata sandi kepada Anda. Masukkan kata sandi yang Anda inginkan saat diminta, lalu konfirmasikan.

Sekarang, keluar dari konsol PostgreSQL dengan memasukkan perintah ini:

\q

Prompt Anda yang biasa sekarang akan muncul kembali.

Pada langkah ini, Anda membuat peran PostgreSQL baru dengan hak pengguna super. Sekarang Anda siap membuat aplikasi Rails baru yang menggunakan peran ini untuk membuat database.

Membuat Aplikasi Rails Baru

Dengan peran yang dikonfigurasi untuk PostgreSQL, Anda sekarang dapat membuat aplikasi Rails baru yang diatur untuk menggunakan PostgreSQL sebagai basis data.

Pertama, navigasikan ke direktori home Anda:

cd ~

Buat aplikasi Rails baru di direktori ini, ganti appname dengan apa pun yang Anda ingin panggil aplikasi Anda:

rails new appname -d=postgresql

Opsi -d=postgresql menetapkan PostgreSQL sebagai database.

Setelah Anda menjalankan perintah ini, folder baru bernama appname akan muncul di direktori home Anda, yang berisi semua elemen aplikasi Rails dasar.

Selanjutnya, pindah ke direktori aplikasi:

cd appname

Sekarang setelah Anda membuat aplikasi Rails baru dan telah pindah ke direktori root untuk proyek Anda, Anda dapat mengkonfigurasi dan membuat database PostgreSQL Anda dari dalam aplikasi Rails Anda.

Mengkonfigurasi dan Membuat Database Anda

Saat membuat development dan test basis data untuk aplikasi Anda, Rails akan menggunakan peran PostgreSQL yang Anda buat untuk nama pengguna Ubuntu Anda. Untuk memastikan bahwa Rails membuat database ini, Anda akan mengubah file konfigurasi database proyek Anda. Anda kemudian akan membuat basis data Anda.

Salah satu perubahan konfigurasi yang harus dilakukan dalam aplikasi Rails Anda adalah menambahkan kata sandi untuk peran PostgreSQL yang Anda buat pada langkah terakhir. Untuk menjaga informasi sensitif seperti kata sandi aman, sebaiknya menyimpan ini dalam variabel lingkungan daripada menuliskannya langsung di file konfigurasi Anda.

Untuk menyimpan kata sandi Anda dalam variabel lingkungan saat login, jalankan perintah berikut, ganti APPNAME dengan nama aplikasi Anda dan PostgreSQL_Role_Password dengan kata sandi yang Anda buat pada langkah terakhir:

echo 'export APPNAME_DATABASE_PASSWORD="PostgreSQL_Role_Password"' >> ~/.bashrc

Perintah ini menulis perintah export ke file ~/.bashrc Anda sehingga variabel lingkungan akan ditetapkan saat login.

Untuk mengekspor variabel untuk sesi Anda saat ini, gunakan perintah source:

source ~/.bashrc

Sekarang setelah Anda menyimpan kata sandi di lingkungan Anda, sekarang saatnya untuk mengubah file konfigurasi.

Buka file konfigurasi basis data aplikasi Anda di editor teks pilihan Anda. Tutorial ini akan menggunakan nano:

nano config/database.yml

Di bawah bagian default, cari baris yang mengatakan pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> dan tambahkan baris yang disorot berikut ini, mengisi kredensial Anda dan variabel lingkungan yang Anda buat. Seharusnya terlihat seperti ini:

...
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: sammy
  password: <%= ENV['APPNAME_DATABASE_PASSWORD'] %>

development:
  <<: *default
  database: appname_development
...

Ini akan membuat aplikasi Rails menjalankan database dengan peran dan kata sandi yang benar. Simpan dan keluar dengan menekan CTRL + X, Y, lalu ENTER.

Untuk informasi lebih lanjut tentang mengonfigurasi basis data di Rails, lihat dokumentasi Rails.

Sekarang Anda telah membuat perubahan pada config/database.yml, buat database aplikasi Anda dengan menggunakan perintah rails:

rails db:create

Setelah Rails membuat database, Anda akan menerima output berikut:

Output
Created database 'appname_development'
Created database 'appname_test'

Seperti yang ditunjukkan oleh output, perintah ini menciptakan development dan test basis data di server PostgreSQL Anda.

Anda sekarang memiliki database PostgreSQL yang terhubung ke aplikasi Rails Anda. Untuk memastikan aplikasi Anda berfungsi, langkah selanjutnya adalah menguji konfigurasi Anda.

Menguji Konfigurasi Anda

Untuk menguji apakah aplikasi Anda dapat menggunakan database PostgreSQL, cobalah untuk menjalankan aplikasi web Anda sehingga itu akan muncul di browser.

Menggunakan perintah rails server, jalankan aplikasi web Anda pada server web bawaan di aplikasi Rails Anda, Puma:

rails server --binding=127.0.0.1

--binding mengikat aplikasi Anda ke IP yang ditentukan. Secara default, flag ini akan mengikat Rails ke 0.0.0.0, tetapi karena ini berarti Rails akan mendengarkan semua antarmuka, lebih aman menggunakan127.0.0.1 untuk menentukan localhost. Secara default, aplikasi mendengarkan pada port 3000.

Setelah aplikasi Rails Anda berjalan, command prompt Anda akan hilang, digantikan oleh output ini:

Output
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:3000
Use Ctrl-C to stop

Untuk menguji apakah aplikasi Anda sedang berjalan, buka jendela terminal baru di server Anda dan gunakan perintah curl untuk mengirim permintaan ke 127.0.0.1:3000:

curl http://127.0.0.1:3000

Anda akan menerima banyak output dalam HTML, diakhiri dengan sesuatu seperti:

Output
...
        <strong>Rails version:</strong> 5.2.3<br />
        <strong>Ruby version:</strong> 2.6.3 (x86_64-linux)
      </p>
    </section>
  </div>
</body>
</html>

Jika aplikasi Rails Anda berada di server jarak jauh dan Anda ingin mengaksesnya melalui browser web, cara yang mudah adalah mengikatnya ke alamat IP publik dari server Anda. Pertama, buka port 3000 di firewall Anda:

sudo ufw allow 3000

Selanjutnya, cari alamat IP publik dari server Anda. Anda dapat melakukan ini dengan menjalankan perintah ikal berikut:

curl http://icanhazip.com

Ini akan mengembalikan alamat IP publik Anda. Gunakan dengan perintah rails server, gantikan server_public_IP dengan IP publik server Anda:

rails server --binding=server_public_IP

Sekarang Anda akan dapat mengakses aplikasi Rails Anda di browser web lokal melalui alamat IP publik server pada port 3000 dengan mengunjungi:

http://server_public_IP:3000

Di URL ini, Anda akan menemukan halaman selamat datang Ruby on Rails:

Image Rails Ini berarti bahwa aplikasi Anda dikonfigurasikan dengan benar dan terhubung ke database PostgreSQL.

Setelah menguji konfigurasi, jika Anda ingin menutup port 3000, gunakan perintah berikut.

sudo ufw delete allow 3000

Kesimpulan

Dalam tutorial ini, Anda membuat aplikasi web Ruby on Rails yang dikonfigurasi untuk menggunakan PostgreSQL sebagai database pada server Ubuntu 18.04. Jika Anda ingin mempelajari lebih lanjut tentang bahasa pemrograman Ruby.

Subscribe Tutorial Gratis

Dapatkan informasi Update terbaru dari Blog saya. Akan dikirim setiap 2 minggu sekali. Tanpa Spam, Tanpa Jibjab