Migrasi Database Laravel di Shared Hosting
by Yahya Muhammad - 17 Mar 2016
Salah satu fitur yang sering digunakan di dalam Laravel adalah Database Migration1. Simply say, fitur ini adalah seperti version control untuk database. Hal ini sangat bermanfaat salah satunya saat suatu aplikasi dikerjakan oleh banyak orang. Jika ada satu orang melakukan perubahan, maka developer lain dapat dengan mudah melakukan perubahan yang sama secara otomatis.
Saat masa development, kita biasanya menggunakan komputer sendiri sebagai database server (localhost)
.
Namun, ada kalanya kita diminta untuk mendeploy saat masa development agar bisa dites oleh
klien. Jika hal ini terjadi secara berkala (misal tiap selesai sprint), bakal repot banget untuk
me-redeploy struktur database jika tidak menggunakan migration.
Nah, di sini akan coba dijelaskan salah satu cara mudah untuk melakukan database migration yang dimiliki Laravel pada shared hosting yang umumnya digunakan oleh klien.
Persyaratan
- Laravel >= 5.0
- cPanel hosting dengan fitur Remote MySQL®
Cara cek: di cPanel terdapat menu seperti gambar di bawah ini
Persiapan
1. Izinkan Remote Access MySQL
Masuk ke menu Remote MySQL®, dan masukkan Public IP kita ke dalam daftar yang diizinkan.
Contohnya bisa lihat gambar di bawah:
Ini dibutuhkan agar kita dapat mengakses database server yang ada di hosting.
2. Persiapkan Database
Pastikan sudah membuat database yang akan digunakan. Harusnya cincai lah ya bagian yang ini :p. Setidaknya siapkan informasi sebagai berikut:
- Hostname : alamat server databasenya, biasanya sama dengan alamat/domain dari cPanel-nya.
- Database name : nama database yang akan digunakan
- Database username : username yang diizinkan mengakses database
- Database password : passwordnya
3. Update .env
Tambahkan informasi koneksi database tadi ke dalam file .env
aplikasi kita. Contohnya sebagai berikut:
#live server
LIVE_DB_HOST=srv10.niagahoster.com
LIVE_DB_DATABASE=db_nyari_murid
LIVE_DB_USERNAME=nyari_murid
LIVE_DB_PASSWORD=password
4. Update Database Config
Nah sekarang kita buat konfigurasi koneksi database baru di dalam Laravel. Buka config/database.php
,
cari bagian Database Connections dan tambahkan konfigurasi baru, seperti contoh kode di bawah ini:
'connections' => [
...
/* koneksi baru */
'live_mysql' => [
'driver' => 'mysql',
'host' => env('LIVE_DB_HOST', 'localhost'),
'database' => env('LIVE_DB_DATABASE', 'forge'),
'username' => env('LIVE_DB_USERNAME', 'forge'),
'password' => env('LIVE_DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
...
],
Eksekusi
Sip, persiapan sudah selesai, tinggal jalankan command untuk melakukan migrasi2. Karena kita ingin mengupdate database yang ada di live server, jangan lupa tambahkan option seperti di bawah ini:
> php artisan migrate --database=live_mysql
Taraa~~
database yang ada di live server pun (mestinya) sudah terupdate dengan struktur terbaru.
Oya, semua nama variabel seperti LIVE_DB_HOST
atau live_mysql
bisa diganti-ganti sesuka hati,
yang penting bener aja nge-refer nya.