Migrasi Laravel

pindipin
04 August 2026
3 min read
Pada awal kami bekerja secara tim untuk menggarap proyek web dengan Laravel, ada satu kejadian yang benar-benar menyebabkan stres dan membuat mood koding hancur yaitu masalah skema database yang saling bentrok.

Pada saat itu kami belum benar-benar memahami cara memanfaatkan fitur Migrasi Laravel. Berikut adalah pengalaman nyata kami, masalah yang terjadi, dan bagaimana migrasi membantu tim kami.

Tragedi "Proyek Berhasil di Komputerku, Tapi Error di Komputer Teman"


Jika saya membuat perubahan pada struktur tabel, seperti menambah kolom status_pembayaran ke tabel pembelian, tindakan yang saya lakukan sebelumnya adalah:

  1.     Buka phpMyAdmin di laptop pribadi Anda.
  2.     Tabel harus diubah secara manual.
  3.     Keluarkan file.sql baru dan kirimkannya ke grup WhatsApp/Slack tim.
  4.     Database tersebut harus diimport ulang ke laptop rekan kerja saya.
Apa hasilnya? kekacauan total
Saat teman saya membuat fitur baru dan mengubah tipe data kolom user_id, saya juga menambah tabel baru. Aplikasi crash dengan cepat setelah kode digabungkan di Git. Banyak error, seperti column unknown atau table, sudah ada.
Bukannya menambah fitur aplikasi, kami membutuhkan tiga jam untuk menyamakan struktur database.
Solusi: Serahkan Urusan Database ke Migrasi Laravel
Setelah kami menjadi marah, kami menyadari bahwa manual itu sangat kuno. Kami mulai mewajibkan penggunaan Migrasi Laravel. Dengan kata lain, migrasi adalah kontrol versi (seperti Git) khusus untuk database Anda. Tidak perlu mengirim file.sql, kami hanya perlu menuliskan struktur tabel melalui kode PHP di folder database /migrations/.

1. Membuat Migrasi Baru

Saya hanya perlu menjalankan phpMyAdmin ketika saya perlu membuat tabel posting. Saya tinggal jalankan perintah ini di terminal:
php artisan make:migration create_posts_table

Laravel akan membuat file khusus yang memiliki stempel waktu. Saya hanya perlu mengisi strukturnya dalam file ini:

public function up(): void
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->enum('status', ['draft', 'published'])->default('draft');
        $table->timestamps();
    });
}

2. Gunakan Git untuk Berbagi Kode

Saya hanya perlu melakukan git commit dan push file migration ke repository tim setelah selesai.

3. Satu Perintah Cukup Untuk Satu Teman Tim

Setelah file migrasi tiba di laptopnya, teman saya hanya perlu mengetik satu perintah rahasia di terminal:

php artisan migrate

BOOM! Database di laptop teman saya secara otomatis ter-update dengan tabel posting yang persis sama seperti yang saya miliki, tanpa perlu menggunakan phpMyAdmin.

3 Aturan Migrasi Emas untuk Pemula: Mengambil Pelajaran dari Kesalahan Kami

Jika Anda bekerja dalam tim, ikuti tiga aturan ini untuk menghindari pusing yang sama seperti kami:

  1. Tidak boleh mengedit tabel secara manual di phpMyAdmin. Buat atau ubah tabel hanya dengan menggunakan file migration. Teman tim Anda tidak akan pernah tahu jika Anda melakukan perubahan manual di phpMyAdmin.
  2. Jangan Pernah Mengubah File Migrasi yang Sudah di-Push: Jika file migrasi telah masuk ke Git dan dijalankan oleh teman timmu, jangan edit file lama itu. Sebaliknya, buat file migrasi baru untuk mengubah atau menambah kolom, seperti dengan menggunakan kode php artisan make:migration add_avatar_to_users_table.
  3. Saat terdesak, gunakan perintah php artisan migrate:fresh --seed. Ini akan menghapus semua tabel dan membangun ulang dari awal berdasarkan urutan file migrasi plus mengisi data dummy secara otomatis.
Bagikan Artikel:
Diskusi & Komentar

Fitur komentar belum diaktifkan oleh administrator.

Selesai membaca? Kembali ke beranda untuk melihat artikel menarik lainnya.

Kembali ke Beranda