Site icon Nusagates Notes

Laravel: Menambah Kolom Baru Pada Sebuah Tabel

Terkadang, kita perlu menambahkan kolom baru pada sebuah tabel yang telah dibuat sebelumnya. Kolom susulan ini biasanya tidak terpikirkan saat kita membuat tabel melalui migrasi pada tahap sebelumnya.

Lalu bagaimana? apakah kita bisa menambahkan kolom susulan tersebut melalui sistem laravel ataukah kita harus menambahkannya melalui PHPMyAdmin atau CMD langsung menggunakan query MySql? nJawabannya adalah sangat bisa dilakukan melalui sistem laravel yaitu melalui migration.

Berikut adalah langkah untuk menambahkan kolom susulan pada tabel yang telah dibuat sebelumnya pada Laravel.

Membuat File Migration

Perta yang perlu dilakukan adalah membuat file migration yang akan diisi dengan kolom susulan yang akan ditambakian pada tabel. Misalnya saja kita akan menambahkan kolom dengan kriteria berikut pada tabel users:

Maka command untuk membuat file migration adalah sebagai berikut:

php artisan make:migration add_membership_status_to_users_table --table=users

Command di atas akan membuat file migration semacam 2021_07_08_093431_add_membership_status_to_users_table.php

Mendefinisikan Kolom Pada File Migration

Setelah file migration berhasil dibuat maka selanjutnya adalah mendefinisikan kolom yang akan ditambahkan pada file tersebut. Contoh kodingan untuk mendefinisikan kolom adalah sebabai berikut:

$table
  ->enum("membership_status", ['basic', 'pro', 'legend'])
  ->default('basic');

Contoh kodingan lengkap pada file migration adalah sebagi berikut:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddMembershipStatusToUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table
              ->enum("membership_status", ['basic', 'pro', 'legend'])
              ->default('basic');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('membership_status');
        });
    }
}

Menjalankan Migration

Langkah terakhir adalah menjalankan migration agar kolom yang telah didefinisikan tersebut ditambahkan pada tabel. Caranya adalah dengan menjalankan command berikut di root project laravel kita.

php artisan migrate

Jika merasa ada kesalahan, kamu bisa membatalkan (undo) migration yang telah dilakukan tersebut dengan menggunakan command:

php artisan migrate:rollback
Exit mobile version