Ada sebuah fitur/keunggulan tersendiri bagi
kamu pengguna framework laravel. Yap, hanya di laravel kita dapat membuat
melalui “migration”. Dengan fitur ini, proses pembuatan dan modifikasi tabel
database dapat dilakukan dalam script PHP. Penggunaan database migration ini
akan sangat “terasa” bagi kamu yang terbiasa dalam pengembangan sistem bersama
tim dimana dalam pengerjaan sistem biasanya dikerjakan lebih dari 1
orang. Setiap ada perubahan tabel, maka akan tersimpan di source
control seperti git. Selain itu, kamu juga dapat melakukan undo dan redo
perubahan database dengan mudah.
Sebelum dapat membuat tabel melalui migration,
kita wajib melakukan konfigurasi database terlebih dahulu dan membuat file
migration. Jalankan command di bawah ini di terminal/command prompt untuk
membuat file migration.
Menjalankan Migrations
Dengan
artisan
, kita cukup menjalankan perintah di bawah.$ php artisan migrate
Migrated: 2016_10_11_014905_create_pages_table
Untuk memastikan tabel
pages
berhasil dibuat, bisa dilakukan pengecekan melalui SQL editor pada basisdata sesuai pengaturan di atas. Selain tabel pages
, kita juga bakal mendapati tabel dengan nama migrations
. Tabel ini berfungsi untuk menyimpan informasi seputar migrations yang kita buat.Memodifikasi Tabel dengan Migrations
Tak hanya membuat tabel baru, dengan migration, kita juga bisa memodifikasi field atau opsi lain pada tabel yang sudah ada. Semisal, dalam tabel
pages
, kita ingin menambahkan field baru dengan nama user_id
. Untuk inisiasi berkas migration-nya, menggunakan perintah kurang lebih seperti di bawah.$ php artisan make:migration add_user_id_field_to_pages_table — table=pages
Penamaan migrasi kali ini sedikit lebih panjang. Hal ini bertujuan untuk memberikan informasi sedetail mungkin tentang migrasi yang akan dijalankan. Opsi
--table
menginstruksikan untuk menambahkan parameter nama tabel dan mengubah tabel yang sudah ada.
Dengan perintah di atas, maka akan menghasilkan berkas baru dengan isi kurang lebih seperti ini.
Modifikasi berkas di atas menjadi seperti di bawah.
Penjelasan singkatnya:
$table->integer('user_id')->after('id');
menambahkan field baru dengan namauser_id
, dan meletakkannya setelah fieldid
dengan menggunakan methodafter()
. Selain itu, sebelum blok script tersebut dibuat, juga ditambahkan pengecekan untuk memastikan tabelpages
memang sudah ada.
Rollback Migration
Sederhananya, rollback bisa berarti membatalkan aksi terakhir dari migrations. Di Laravel versi 5.3, kita dapat menentukan sendiri jumlah langkah rollback migrations. Satu langkah berarti satu berkas migrations.
$ php artisan migrate:rollback
Rolled back: 2016_10_11_014905_create_pages_table
Dalam versi 5.3, dapat menggunakan opsi
step
.$ php artisan migrate:rollback --step=2
Apabila ingin membatalkan semua migration, maka cukup dengan menjalankan perintah
php artisan migrate:reset
.
Masih ada tiga aksi lagi yang tersedia pada migration, ialah
status
, refresh
dan install
, yang ketiganya berfungsi sebagai berikut:install
membuat repositori migrations.refresh
rollback sepenuhnya migration, kemudian menjalankan ulang migrations tersebut dari awal.status
memeriksa status migrasi saat ini.
Langsung saja kita ke Studi Kasus...
Maka, akan terbentuk sebuah file baru di folder database/migrations. Isinya kira kira seperti ini :
- Isi minimal 15 field yang berbeda
Dalam file tersebut terdapat 2 function yakni
:
- Function up() : Berisi perubahan struktur database yang kita inginkan.
- Function down() : Berisi pembatalan aksi terhadap perubahan struktur yang dilakukan oleh function up().
JALANKAN MIGRASI
STUDI KASUS 2
1.Buatlah tabel t_kelas dengan field nama_kelas, jurusan
2.Buatlah perubahan tabel t_kelas dengan menambahkan field lokasi_ruangandengan tipe data string dan panjang 100 karakter
3.Buatlah perubahan tabel t_kelas dengan mengganti panjangnya menjadi 50 karakter
4.Buatlah perubahan tabel t_kelas dengan menambahkan field nama_walkeldengan tipe data string dan panjang 50 karakter
5.Buatlah perubahan tabel t_kelas dengan mengubah nama field nama_walkelmenjadi nama_wali_kelas
STUDI KASUS 2.1
Ketik di CMD seperti ini :Lakukan migrasi.Caranya ketik command dibawah ini :
Dan hasilnya akan seperti ini :
STUDI KASUS 2.2
Ketik di CMD :Lalu edit isi File nya seperti ini :
Lakukan migrasi, Ketik Command ini di CMD tadi :
Jika muncul message nya akan seperti ini :
STUDI KASUS 2.3
Ketik di CMD:
Lakukan migrasi :
Jika berhasil message akan seperti ini :STUDI KASUS 2.4
Ketik di CMD :
Lakukan migrasi, Caranya ketik Command dibawah ini di CMD :
Jika muncul akan seperti ini :
STUDI KASUS 2.5
Ketik ini di CMD :
Lalu edit File nya seperti ini :Lakukan migrasi, Caranya ketik Command dibawah ini di CMD :
Jika muncul message akan seperti ini :
Berikut sedikit penjelasannya.
Schema::create('pages', function (Blueprint $table) {..}
memanggil methodcreate()
dari classSchema
.$table->increments('id');
method untuk membuat increment field dengan namaid
.$table->string('slug', 150)->unique();
membuat field string dengan panjang 150 karakter dan bersifat unik (UNIQUE).$table->text('content');
membuat field text.$table->enum('status', ['drafted', 'published'])->default('drafted');
membuat field enum dengan dua nilai, yaitudrafted
danpublished
, dan menjadikandrafted
sebagai nilai default.$table->timestamps();
merupakan method yang secara otomatis akan membuat dua buah field dengan namacreated_at
danupdated_at
.- Selain membuat tabel dan memodifikasinya, masih ada banyak hal yang dapat dilakukan dengan migrations pada Laravel. Aksi lainnya semisal menghapus atau mengganti nama tabel yang sudah ada, menghapus field, membuat indeks, foreign key, dan lainnya. Tutorial di atas merupakan basic yang sudah mencakup sebagian besar fitur migrations, sisanya, silakan pelajari sendiri melalui laman official Laravel. 😉
Comments
Post a Comment