Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #19 : Migration Laravel

Saya mohon maaf, sepertinya ada kesalahan dalam permintaan saya sebelumnya. Berikut adalah artikel yang benar mengenai Tutorial Laravel #19 : Migration Laravel:

 

 

Dalam pengembangan aplikasi web dengan Laravel, Migration adalah fitur yang sangat berguna untuk mengelola struktur database secara terstruktur dan kolaboratif. Dengan migration, Anda dapat membuat, memodifikasi, dan menghapus tabel serta kolom database menggunakan kode PHP, yang kemudian dapat di-version control bersama dengan kode aplikasi Anda. Pada tutorial kali ini, kita akan membahas dasar-dasar penggunaan migration di Laravel.


 

Apa Itu Migration?

 

Migration dalam Laravel adalah seperti version control untuk database Anda. Alih-alih mengelola perubahan skema database secara manual melalui SQL, Anda mendefinisikan perubahan tersebut dalam file PHP (disebut file migration). Laravel kemudian dapat menjalankan migration ini untuk memodifikasi struktur database Anda, dan juga dapat melakukan rollback jika diperlukan.

 

Keuntungan Menggunakan Migration

 

  • Version Control: File migration dapat disimpan di sistem version control (seperti Git), sehingga setiap perubahan pada database dapat dilacak.
  • Kolaborasi Tim: Memudahkan tim pengembang untuk menyinkronkan struktur database.
  • Deployment: Mempermudah proses deployment aplikasi ke lingkungan baru, karena struktur database dapat dibuat secara otomatis.
  • Rollback: Memungkinkan untuk mengembalikan perubahan database ke versi sebelumnya jika terjadi kesalahan.

 

Membuat Migration Baru

 

Untuk membuat file migration baru, Anda dapat menggunakan Artisan CLI:

“`bash

php artisan make:migration create_mahasiswa_table –create=mahasiswa

“`

Perintah di atas akan membuat file migration baru di dalam direktori database/migrations/ dengan nama yang mengandung timestamp dan deskripsi (create_mahasiswa_table). Opsi --create=mahasiswa mengindikasikan bahwa migration ini akan membuat tabel baru bernama mahasiswa.

Jika Anda ingin membuat migration untuk memodifikasi tabel yang sudah ada, gunakan perintah berikut (tanpa opsi --create):

“`bash

php artisan make:migration add_jurusan_to_users_table –table=users

“`

Ini akan membuat file migration untuk memodifikasi tabel users (dalam contoh ini, untuk menambahkan kolom jurusan).


 

Struktur File Migration

 

Setiap file migration berisi dua method penting:

  • up(): Method ini berisi kode yang akan dijalankan ketika migration dijalankan (misalnya, membuat tabel, menambahkan kolom).
  • down(): Method ini berisi kode yang akan dijalankan ketika migration di-rollback (misalnya, menghapus tabel, menghapus kolom).

Contoh isi file migration create_mahasiswa_table:

“`php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateMahasiswaTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create(‘mahasiswa’, function (Blueprint $table) {

$table->id(); // Membuat kolom auto-incrementing UNSIGNED BIGINT (primary key) bernama ‘id’

$table->string(‘nama’);

$table->string(‘nim’)->unique();

$table->string(‘jurusan’);

$table->timestamps(); // Membuat kolom ‘created_at’ dan ‘updated_at’

});

}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('mahasiswa');
}

}

“`

Contoh isi file migration add_jurusan_to_users_table:

“`php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class AddJurusanToUsersTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::table(‘users’, function (Blueprint $table) {

$table->string(‘jurusan’)->nullable()->after(’email’);

});

}

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

}

“`

Di dalam method up() dan down(), Anda menggunakan Schema Builder Laravel untuk mendefinisikan operasi database. Beberapa contoh operasi yang sering digunakan:

  • Schema::create('nama_tabel', function (Blueprint $table) { ... });: Membuat tabel baru.
  • Schema::table('nama_tabel', function (Blueprint $table) { ... });: Memodifikasi tabel yang sudah ada.
  • $table-&gt;addColumn('tipe_data', 'nama_kolom')-&gt;...: Menambahkan kolom baru.
  • $table-&gt;string('nama_kolom', panjang)-&gt;...: Menambahkan kolom string.
  • $table-&gt;integer('nama_kolom')-&gt;...: Menambahkan kolom integer.
  • $table-&gt;bigInteger('nama_kolom')-&gt;...: Menambahkan kolom big integer.
  • $table-&gt;boolean('nama_kolom')-&gt;...: Menambahkan kolom boolean.
  • $table-&gt;date('nama_kolom')-&gt;...: Menambahkan kolom tanggal.
  • $table-&gt;timestamp('nama_kolom')-&gt;...: Menambahkan kolom timestamp.
  • $table-&gt;timestamps(): Membuat kolom created_at dan updated_at.
  • $table-&gt;primary('nama_kolom'): Mendefinisikan primary key.
  • $table-&gt;unique('nama_kolom'): Mendefinisikan indeks unik.
  • $table-&gt;index('nama_kolom'): Mendefinisikan indeks biasa.
  • $table-&gt;foreign('kolom_foreign')-&gt;references('kolom_utama')-&gt;on('tabel_utama'): Mendefinisikan foreign key.
  • $table-&gt;dropColumn('nama_kolom'): Menghapus kolom.
  • Schema::drop('nama_tabel'): Menghapus tabel (hati-hati!).
  • Schema::dropIfExists('nama_tabel'): Menghapus tabel jika ada.

Anda dapat melihat daftar lengkap tipe kolom dan modifier di dokumentasi resmi Laravel.


 

Menjalankan Migration

 

Untuk menjalankan semua migration yang belum dijalankan, gunakan perintah Artisan:

“`bash

php artisan migrate

“`

Laravel akan menjalankan method up() dari setiap file migration yang belum pernah dieksekusi sebelumnya.

 

Melakukan Rollback Migration

 

Untuk membatalkan migration terakhir yang telah dijalankan, gunakan perintah:

“`bash

php artisan migrate:rollback

“`

Ini akan menjalankan method down() dari migration terakhir. Anda dapat menjalankan perintah ini beberapa kali untuk membatalkan beberapa migration terakhir.

Untuk me-reset seluruh database (menghapus semua tabel dan menjalankan semua migration dari awal), gunakan perintah:

“`bash

php artisan migrate:fresh

“`

Perhatian: Perintah migrate:fresh akan menghapus semua data di database Anda. Gunakan dengan hati-hati, terutama di lingkungan produksi.


 

Status Migration

 

Anda dapat melihat status migration (apakah sudah dijalankan atau belum) dengan perintah:

“`bash

php artisan migrate:status

“`


 

Kesimpulan

 

Laravel Migration adalah fitur yang sangat powerful untuk mengelola skema database aplikasi Anda. Dengan menggunakan migration, Anda dapat memastikan bahwa struktur database Anda selalu sinkron dengan kode aplikasi, memudahkan kolaborasi tim, dan mempermudah proses deployment serta rollback. Pada tutorial selanjutnya, kita akan membahas tentang Seeder di Laravel, yang berguna untuk mengisi database dengan data awal. Tetap ikuti seri tutorial Laravel ini!

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_q0o3sbq0o3sbq0o3
Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_ust09gust09gust0
Gemini_Generated_Image_d8a5kwd8a5kwd8a5

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek