
<script>alert('hello');
Hallo sahabat ngoding
Pada bagian ini kita akan berkenalan dengan salah satu yang keren pada laravel. yaitu Migration
Apasihh Migration Laravel??
Migration merupakan cara untuk membuat skema database secara langsung dengan mengeksekusi kode program atau bisa disebut dengan Control Version System, bukan melalui eksekusi SQL. Dengan migration, kita bisa membuat table data dengan lebih mudah dan cepat. migration akan meng-generate file - file migration sebagai control system. Maka, kita tidak perlu menulis kode SQL untuk membuat skema database, melainkan menggunakan kode program PHP.
Masih bingung? Tenang, saya harap setelah contoh berikut, Anda akan lebih memahami.
Sebelum memulai pembuatan file migration, pertama sekali coba teman-teman hapus semua file migration yang sudah ada pada folder database\\migrations
.
Cara Membuat Migration
Untuk membuat file migrasi, kita akan menggunakan Artisan CLI dengan perintah “php artisan” yang nanti akan dijalankan pada command line atau terminal. Namun, sebelum pembuatan migration, pertama kali kita perlu merancang database dengan kebutuhan kita dan sesuaikan koneksi databasenya yang bisa kita atur pada file .env. contohnya, seperti ini :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=latihan_laravel
DB_USERNAME=root
DB_PASSWORD=root
lalu kawan - kawan bisa membuka terminal atau Command Line, masuk ke directory project laravel kalian melalui terminal atau command line, kemudian masukan perintah dengan perinta berikut.
$ php artisan make:migration nama_migration
// contohnya
$ php artisan make:migration create_table_murid
apabila terdapat pemberitahuan bahwa file migrasi sudah terbuat dan tersimpan. Setelah itu kalian bisa membuka file migrasi yang tersimpan lalu isi seperti berikut.
bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('murid');
}
Seperti yang bisa liat , perbedaan fungsi up()
dan down()
terlihat jelas pada file migrasi. File migrasi yang dibuat dengan memiliki fungsi up()
dan down()
yang secara otomatis mengenali nama tabel yang akan dibuat. Di sisi lain, file migrasi tanpa awalan create_
memiliki fungsi
yang masih kosong dan perlu diisi secara manual. Hal ini merupakan salah satu trik untuk mempercepat pembuatan file migrasi di Laravel.up()
dan down()
Salah satu tips penting dalam Laravel adalah mengikuti aturan penamaan yang baku. Hal ini akan memudahkan kita dalam pengembangan aplikasi. Contohnya, nama tabel dalam Laravel menggunakan kata jamak, sedangkan nama modelnya menggunakan kata tunggal. Misalnya, model dengan nama User
akan dipadankan dengan tabel
. Begitu pula model dengan nama Murid akan dipadankan dengan tabel Murid .User
Jika kita tidak mengikuti aturan penamaan ini, kita perlu menentukan secara manual nama tabel yang berpadanan dengan model kita. Hal ini dapat menyulitkan dan membuat kode kita kurang terbaca.
Melengkapi File Migrasi
Tahapan berikutnya adalah melengkapi file migration kita. Pada file migration create_table_murid , lengkapi fungsi up()
seperti contoh dibawah ini.
bigIncrements('id');
$table->string('nama');
$table->unsignedInteger('nomor_siswa');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('murid');
}
Mari kita bedah potongan kode program diatas.
Schema::create('murid', …
adalah kode program untuk membuat tabel. Parametermurid
* adalah sebagai nama tabel yang akan dibuat. Jika diterjemahkan ke kode program SQL maka perintah diatas sama denganCREATE TABLE murid(....
$table->bigIncrements('id')
adalah kode program untuk membuat atribut*id
* dengan ketentuan bertipe data big int, unsigned, bersifat not null, bersifat auto_increment, dan dijadikan sebagai primary key. Unsigned artinya nilainya tidak akan bisa negatif, not null artinya tidak boleh dikosongkan, auto_increment artinya akan bertambah secara otomatis ketika menambah data baru. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan'id' int unsigned not null auto_increment primary key
.$table->string('nama')
adalah kode program untuk membuat atributname
dengan ketentuan bertipe data varchar(255) dan bersifat not null. Varchar(255) artinya adalah tipe berupa rangkaian karakter dengan panjang maksimal 255 karakter, sama dengan 255 bit, karena setiap karakter membutuhkan alokasi memori sebesar 1 bit. Angka 255 adalah angka default dan bisa diganti dengan kebutuhan panjang data kita dengan cara mengubah kode program menjadi$table->string('title', 100)
, untuk panjang maksimal 100 karakter. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan'name' varchar(255) not null
.$table->unsignedInteger('nomor_siswa')
adalah kode program untuk membuat atributnomor_siswa
dengan ketentuan int unsigned not null. Kita buat bersifat unsigned untuk membatasi kesalahan memasukkan data berupa bilangan negatif. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan'nomor_siswa' int unsigned not null
$table->timestamps()
adalah potongan kode untuk membuat atributcreated_at
danupdated_at
dengan ketentuan timestamp null. Timestamp adalah tipe data untuk menyimpan tanggal dan waktu sekaligus. Null artinya tidak wajib disini. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan'created_at' timestamp null, 'updated_at’ timestamp null
Jadi untuk potongan kode pada fungsi up() diatas jika kita menulisnya dalam kode program SQL, maka akan seperti ini.
create table 'books' (
'id' int unsigned not null auto_increment primary key,
'nama' varchar(255) not null, 'nomor_siswa' int unsigned not null,
'created_at' timestamp null,
'updated_at' timestamp null
}
Eksekusi File Migrasi
Setelah menyelesaikan pembuatan file migrasi, langkah selanjutnya adalah menjalankannya. Kita akan menggunakan Artisan CLI untuk melakukan eksekusi. Pastikan konfigurasi koneksi database pada file .env
telah diisi dengan benar sebelum menjalankan perintah berikut:
php artisan migrate
Apabila tidak ada pesan error yang muncul maka migration berjalan dengan benar. Maka table user dan tabel yang kalian dibuat sudah tercipta di dalam database yang terhubung. Apabila terdapat pesan error kalian coba baca dan temukan solusinya di stackoverflow atau forum lainya hehehehe.
Sampai sini untuk pembuatan tabel dengan migration
Merubah Nama Tabel Pada Migration Laravel
Selain create kita juga bisa mengubah nama table yang kita miliki melalui migration fungsi , dengan perintah.
Schema::rename('nama_table_yang_ingin_di_rename', 'nama_baru');
tapi kalian bisa juga kok buat ganti table name kalian pada fungsi up(). dan kemudian lakukan perintah php artisan migrate
Menghapus Table Dengan Migration
Untuk menghapus tabel dengan migration laravel, juga sudah ada fungsi atau metode nya.
Schema::drop('nama_table');
Migrasi Laravel menawarkan solusi modern dan efisien untuk merancang skema database. Meskipun tidak wajib, migrasi dapat meningkatkan kolaborasi, deployment, dan kejelasan kode dalam proyek Laravel kalian.
Oke Sekian penjelasan tentang migration kalian bisa kembali untuk menguliknya sendiri tentunya. Semoga bermanfaat buat kalian.
See you guysss !