Halo teman-teman semuanya, di artikel sebelumnya kita sudah belajar bagaimana cara membuat project Laravel dan menjalankannya. Sekarang kita akan belajar tentang database migration.
Apa itu Database Migration ?
Migrations are like version control for your database, allowing your team to define and share the application's database schema definition. If you have ever had to tell a teammate to manually add a column to their local database schema after pulling in your changes from source control, you've faced the problem that database migrations solve.
Atau sederhananya seperti berikut ini :
Migration
adalah sebuah version control database, dimana akan membantu team untuk mengubah dan membagikan sebuah schema database dari aplikasi yang dibangun. Jika sebelumnya teman-teman biasanya membuat table-table secara manual di dalam database, maka dengan migration hal itu sudah tidak perlu dilakukan lagi.
Di artikel kali ini kita semua akan belajar membuat migration untuk membuat table posts
beserta field-fieldnya. Sebelumnya, kita harus melakukan konfigurasi koneksi database terlebih dahulu.
Langkah 1 - Koneksi Database
Pertama, silahkan buka file .env
kemudian cari kode berikut ini :
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Kemudian, ubah menjadi seperti berikut ini :
DB_DATABASE=db_laravel_tailwind
DB_USERNAME=root
DB_PASSWORD=
Di atas, kita akan menggunakan nama database yaitu db_laravel_tailwind
dan untuk DB_PASSWORD
silahkan disesuaikan dengan konfigurasi dari MySQL-nya masing-masing. Jika menggunakan XAMPP, secara default adalah kosong atau tidak perlu diisi.
CATATAN!: pastikan setelah melakukan perubahan di dalam file .env
, untuk selelau melakukan restart server Laravel untuk melihat perubahannya.
Langkah 2 - Membuat Database
Sekarang, kita lanjutkan untuk membuat databasenya, disini kita akan membuat melalui PhpMyadmin
jika teman-teman menggunakan yang lain tidak ada masalah juga.
Sekarang, silahkan buka http://localhost/phpmyadmin dan silahkan buat database baru dengan nama db_laravel_tailwind
, kurang lebih seperti berikut ini :
Langkah 3 - Membuat Model dan Migration
Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan tentu saja di dalam project Laravel yang sudah kita buat sebelumnya :
php artisan make:model Post -m
Perintah di atas digunakan untuk membuat Model Post dan karena kita menambahkan flag -m
yang artinya file migration juga akan ikut dibuat.
Untuk Model, bisa dilihat di dalam folder app/Models/Post.php
dan untuk migration berada di dalam folder database/migrations/2021_02_09_020751_create_posts_table.php
untuk nama file migration akan random sesuai dengan tanggal pembuatannya.
Langkah 4 - Menambahkan Field/Kolom Table
Sekarang kita akan lanjutkan untuk menambahkan beberapa field untuk table posts
, silahkan buka file database/migrations/2021_02_09_020751_create_posts_table.php
dan pada ffunction up
ubah kode-nya menjadi seperti berikut ini :
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('image');
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
Di atas, kita menambahkan 3 field, yaitu image
dengan tipe data string
. title
dengan tipe data string
dan content
dengan tipe data text
.
Langkah 5 - Menjalankan Migration
Setelah berhasil membuat beberapa kode untuk field di dalam table posts
, sekarang kita akan belajar menjalankan migration agar field-fieldnya ter-generate di dalam database.
Silahkan jalankan perintah berikut ini di dalam CMD/terminal :
php artisan migrate
Jika berhasil maka teman-teman bisa mencoba cek database dan teman-teman akan menemukan table posts
yang sudah kita buat di dalam file migration.
Langkah 6 - Menambahkan Mass Assigment
Mass Assigment merupakan method yang digunakan untuk mengizinkan sebuah field dari table agar dapat menyimpan sebuah data. Kita bisa membuat mass assignment dengan properti $fillable
di dalam model Post. Silahkan buka file app/Models/Post.php
kemudian tambahkan kode berikut ini :
/**
* fillable
*
* @var array
*/
protected $fillable = [
'image', 'title', 'content'
];
Jika file app/Models/Post.php
di tulis dengan lengkap, kurang lebih seperti berikut ini :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
/**
* fillable
*
* @var array
*/
protected $fillable = [
'image', 'title', 'content'
];
}
Sampai disini pembahasan tentang bagaimana cara membuat dan menjalankan migration di Laravel, di artikel selanjutnya kita semua akan belajar bagaimana cara melakukan installasi Tailwind CSS di dalam project Laravel.
Terima Kasih
INFO :