Anda di halaman 1dari 14

Konfigurasi Laravel dan PostgreSQL

Beserta Contoh Migration

 Laravel
 Web Development
 PostgreSQL
 PHP

Daftar Isi


o Apa yang dibutuhkan?
o 1. Install Laravel
o 2. Nyalakan PostgreSQL Server
o 3. Buat Database
o 4. Atur Koneksi
o 5. Contoh Migration dan Seeder
o Kesimpulan

Bagikan:

Bismillah.

Pada kesempatan kali ini saya akan membahas tentang bagaimana mengatur konfigurasi
Laravel dengan postgresql. Tidak hanya itu, di bagian akhir dari tulisan ini juga akan
dicontohkan membuat tabel baru dengan migration dan membuat data dummy untuk
memberikan gambaran lebih detil tentang laravel dan postgresql.
Apa yang dibutuhkan?
Pertama yang dibutuhkan adalah tentu saja anda menginstall PostgreSQL server. Jika anda
menggunakan arch linux, anda bisa membaca tutorial jagongoding yang lain tentang Cara
Menginstall PostgreSQL 11 di Arch Linux.

Selanjutnya, karena kita akan menginstall laravel. Maka kita juga membutuhkan semua yang
dibutuhkan oleh Laravel.

1. Install Laravel
Langkah pertama install laravel. Buka terminal anda dan jalankan perintah di bawah. Lebih
jelasnya bisa dilihat di Cara Install Laravel di Linux Semua Distro jika anda menggunakan
linux.

laravel new belajar-postgres

cd belajar-postgres
php artisan serve
Buka localhost:8000 pada browser untuk memastikan apakah project baru laravel sudah
berhasil terpasang.

2. Nyalakan PostgreSQL Server


Pastikan PostgreSQL sudah menyala. Ini tentu saja tergantung dari sistem operasi yang
teman-teman gunakan, jika menggunakan linux, secara umum postgresql bisa dinyalakan
dengan perintah systemctl berikut:

sudo systemctl start postgresql

3. Buat Database
Ada beberapa cara membuat database di postgresql. Di sini saya mencontohkan tiga cara,
silakan perhatikan dengan baik lalu pilih salah satu cara yang menurut anda lebih
memudahkan.

Cara 1: Menggunakan perintah createdb

Dengan menggunakan perintah createdb, anda otomatis akan membuat database milik dari
user yang sedang login tanpa melakukan autentikasi. Perintahnya adalah sebagai berikut:

createdb belajar

Cara 2: Menggunakan DB Client GUI

Cara yang kedua adalah menggunakan DB Client GUI. Di sini saya contohkah menggunakan
DB Client adminer, simpel tapi powerfull untuk berbagai macam DBMS. Anda bisa bebas
menggunakan DB Client yang lainnya.
Cara 3: Membuat dengan QUERY

Cara membuat database yang ketiga adalah dengan menggunakan Query secara langsung dari
psql client. Yang pertama anda lakukan adalah login ke postgresql dengan menggunakan
perintah psql. Secara umum tanpa menambahkan parameter apa pun, anda akan otomatis
login menggunakan user yang sedang aktif.`

psql

Lalu tulis query untuk membuat database baru.

CREATE DATABASE belajar;


4. Atur Koneksi
Setelah database berhasil kita buat. Langkah selanjutnya adalah mengatur koneksi agar
aplikasi laravel kita terhubung ke database yang telah kita buat. Pertama-tama buka file .env,
kalau belum ada maka copy dulu file yang sudah ada dari .env.example.

cp .env.example .env

Jangan lupa jika belum ada APP_KEY maka kita generate dulu dengan perintah berikut:

php artisan key:generate

Pada nilai dengan prefix DB_ kita atur seperti di bawah ini agar bisa terkoneksi dengan
database postgresql yang baru saja kita buat.

...

DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=<nama-database>
DB_USERNAME=<username>
DB_PASSWORD=<password>

...

Ganti nilai yang diapit tanda < dan > dengan konfigurasi yang sesuai`.
Harusnya aplikasi kita sekarang telah berhasil terkoneksi dengan postgresql.

Setelah ini kita akan mencoba untuk membuat migration dan seeder, agar bisa terbukti
apakah benar-benar sudah berhasil terkoneksi atau tidak.

5. Contoh Migration dan Seeder


Sebenarnya secara default laravel sudah hadir dengan dua buah migration, yaitu untuk tabel
users dan tabel password_resets. Sehingga kalau kita jalankan perintah php artisan
migrate kita otomatis akan mendapatkan dua tabel tersebut di database kita dan satu tabel
tambahan yaitu migrations.

Pertama-tama kita akan coba lakukan php artisan migrate terlebih dahulu untuk
mengecek apakah koneksi database kita sudah benar atau tidak. Setelah itu kita akan coba
membuat tabel baru dengan migration yang baru.

php artisan migrate


Jika tidak ada error dan anda mendapatkan output seperti gambar di atas, maka itu artinya
koneksi kita berhasil dan di database kita yaitu database belajar sekarang telah terdapat 3
tabel baru.

Pada bagian selanjutnya kita akan mencoba membuat tabel baru bernama tabel buku dengan
memanfaatkan migration laravel.
Buat Migration Untuk Tabel Buku

Kita akan membuat tabel baru bernama tabel buku. Dengan attribut seperti berikut:

buku
id - integer
judul - varchar
penulis - varchar
stok - integer
buku_terjemahan - boolean
deskripsi - longtext
created_at - timestamp
updated_at - timestamp

Jalankan perintah php artisan make:migration <nama-migration> untuk membuat


migration baru.

php artisan make:migration create_buku_table --create=buku

Setelah itu kita akan mendapati file baru di dalam direktori database/migrations sesuai
dengan nama migration yang kita definisikan.
Ketika kita buka file
database/migrations/XXXX_XX_XX_XXXXXX_create_buku_table.php, kita akan dapati
kode sebagai berikut pada fungsi up:

<?php

Schema::create('buku', function (Blueprint $table) {


$table->bigIncrements('id');
$table->timestamps();
});

Ini otomatis tertambahkan jika kita saat membuat migration baru kita sertakan flag
--create=<nama-table>. Ini memudahkan kita karena kita tidak perlu menulis banyak kode
secara manual.

Baik, selanjutnya kita akan membuat kolom-kolom seperti yang sudah berlalu penjelasannya.
Kita tambahkan kode berikut ini kedalam fungsi up().

<?php

public function up()


{
Schema::create('buku', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('judul', 60);
$table->string('penulis', 30);
$table->integer('stok');
$table->boolean('buku_terjemahan')->default(false);
$table->longText('deskripsi')->nullable();
$table->timestamps();
});
}
Eksekusi perintah php artisan migrate untuk mengaplikasikan migration yang baru kita
buat.

php artisan migrate

Jika tidak terjadi error, berarti tabel buku telah berhasil kita buat.

Buat Seeder Untuk Tabel Buku

Oke, di sini kita akan membuat seeder baru untuk tabel buku. Lalu kita isi data dummy
sebanyak 100 baris. Bagi kalian yang ingin mempelajari lebih jauh, saya pernah menulis
tutorial tersendiri tentang Cara Membuat Data Dummy di Laravel.

Ada pun pada kesempatan kali ini, kita ambil simpelnya saja.

Jalankan perintah php artisan make:seeder untuk membuat seeder baru.

php artisan make:seeder TabelBukuSeeder


Maka file baru di folder database/seeds/ akan dibuat.

Buka file database/seeds/TabelBukuSeeder.php. Lalu pada fungsi run() ubah kodenya


menjadi seperti berikut:

<?php
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$faker = \Faker\Factory::create();

\DB::table('buku')->truncate();

for ($i=0; $i < 100; $i++) {


DB::table('buku')->insert([
'judul' => $faker->sentence(3),
'penulis' => $faker->name,
'stok' => $faker->numberBetween(1, 10),
'buku_terjemahan' => $faker->randomElement([true, false]),
'deskripsi' => $faker->text(100),
'created_at' => now(),
'updated_at' => now()
]);
}
}

Buka file database/seeds/DatabaseSeeder lalu pada fungsi run(), panggil kelas


TabelBukuSeeder.

<?php

/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(TabelBukuSeeder::class);
}

Setelah semuanya rampung, eksekusi perintah php artisan db:seed.

php artisan db:seed

Jika tidak ada error, maka sekarang tabel buku memiliki 100 data dummy.
Kesimpulan
Kesimpulannya, laravel dengan segala kemudahannya membuat kita benar-benar bisa fokus
ke proses pembuatan program. Karena layer database telah dihandle sedemikian rupa
sehingga kita tidak perlu berkotor-kotor untuk bersentuhan langsung dengan layer database.

Oleh karena itu jika teman-teman perhatikan di atas, tidak ada bedanya ketika kita
menggunakan postgresql atau mysql sebagai DBMS kita, laravel menjembataninya dengan
baik sekali. Sehingga jika teman-teman ingin mengubah DBMS ke mysql, tinggal mengganti
.env nya saja.

Anda mungkin juga menyukai