Panduan ini menjelaskan mengapa Anda perlu menggunakan variabel lingkungan untuk terhubung ke database dan cara mengkonfigurasi koneksi database menggunakan variabel lingkungan di aplikasi Rails di Linux.
Mengapa menggunakan variabel lingkungan untuk mengkonfigurasi database?
Setiap aplikasi Rails akan berinteraksi dengan database masing-masing. Ada dua cara untuk terhubung dengan database dalam aplikasi Rails. Anda dapat terhubung ke database melalui file konfigurasi database yang disebut config/database.yml
atau menggunakan variabel lingkungan yang disebut ENV['DATABASE_URL']
. Kami telah menunjukkan kepada Anda cara membuat aplikasi Rails dengan database MySQL atau basis data PostgreSQL . Dalam dua panduan ini, kami mengonfigurasi koneksi database menggunakan config/database.yml
berkas.
Jika Anda satu-satunya orang yang bekerja di proyek Rails, boleh saja menyimpan kredensial database di config/database.yml
mengajukan. Tetapi jika proyek di-host di repositori Git publik dan banyak pengembang sedang mengerjakannya, tidak disarankan untuk menyimpan informasi sensitif seperti kata sandi di config/database.yml
mengajukan. Juga, detail basis data setiap pengembang dapat berbeda, yaitu nama pengguna dan kata sandi. Setiap kali kita mendorong kode, akan ada konflik dalam file. Inilah sebabnya mengapa kita perlu menyimpan kredensial database dalam variabel lingkungan daripada menulisnya langsung di file konfigurasi database.
Konfigurasi koneksi database menggunakan variabel lingkungan di aplikasi Rails
Saya berasumsi bahwa Anda memiliki Ruby on Rails terbaru di mesin Linux Anda. Jika Anda belum menginstal Ruby on Rails, lihat panduan berikut.
- Cara Menginstal Ruby On Rails Di Linux
Selanjutnya, buat aplikasi Rails baru. Jika ingin menggunakan MySQL dengan aplikasi Rails, jalankan perintah berikut untuk membuat aplikasi Rails baru yaitu ostechnixapp
:
$ rails new ostechnixapp -d mysql
Jika Anda ingin menggunakan PostgreSQL dengan aplikasi Rails, buat aplikasi Rails baru bernama ostechnixapp
seperti di bawah ini:
$ rails new ostechnixapp -d postgresql
Selanjutnya, tambahkan variabel lingkungan baru dengan kata sandi pengguna database Anda di file profil pengguna Anda, misalnya ~/.bashrc
.
$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc
Pada perintah di atas, ganti "OSTECHNIXAPP"
dengan nama aplikasi Anda dan "Database_User_Password"
dengan kata sandi pengguna basis data Anda yang sebenarnya.
Sumber ~/.bashrc
file untuk segera memperbarui perubahan:
$ source ~/.bashrc
Sekarang beralih ke direktori aplikasi:
$ cd ostechnixapp/
Edit file konfigurasi database aplikasi:
$ vi config/database.yml
Jika Anda menggunakan MySQL, tambahkan nama pengguna database dan variabel lingkungan yang kami tambahkan ke ~/.bashrc
file pada langkah sebelumnya, di bawah default
bagian. Inilah yang saya tambahkan di file konfigurasi MySQL:
[...] default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %> socket: /var/run/mysqld/mysqld.sock [...]
Sekali lagi, Anda harus mengganti OSTECHNIXAPP_DATABASE_PASSWORD
dengan variabel lingkungan Anda yang benar.
Jika Anda menggunakan PostgreSQL, tambahkan peran database dan variabel lingkungan di bawah default
bagian seperti di bawah ini:
[...] default: &default adapter: postgresql encoding: unicode # For details on connection pooling, see Rails configuration guide # https://guides.rubyonrails.org/configuring.html#database-pooling pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: ostechnix password: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %> [...]
Setelah menambahkan peran pengguna database dan variabel lingkungan, tekan ESC
kunci dan ketik :wq
untuk menyimpan perubahan dan keluar dari file.
Terakhir, buat database untuk aplikasi Rails Anda menggunakan perintah:
$ rake db:create
Perintah ini akan membuat dua database yaitu ostechnixapp_development
dan ostechnixapp_test
.
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Sekarang jalankan aplikasi Rails di server web built-in bernama puma menggunakan perintah:
$ rails server -b 0.0.0.0
Buka browser web Anda dan akses aplikasi Rails dengan menavigasi ke http://ip-address:3000
URL. Anda akan disambut dengan halaman pengujian default Rails:
Seperti yang sudah saya lakukan, jika Anda tidak ingin mengungkapkan kata sandi basis data kepada pengembang lain, Anda harus mengonfigurasi koneksi basis data dengan variabel lingkungan dalam aplikasi Rails. Jika Anda satu-satunya pengembang, Anda cukup menggunakan file konfigurasi database default.