Cara menghapus tabel database hasil migrasi di Laravel 5.3


Seperti yang pernah saya bahas sebelumnya, fungsi fitur migration database adalah sebagai control version system tabel database di Laravel dan untuk mengelola tabel database. Jadi selain dapat digunakan untuk membuat skema tabel database, maka kita dapat gunakan untuk menghapus tabel database yang telah di buat. 

Setiap database yang telah kita migrasikan akan tercatat di dalam tabel migrations di dalam database yang sama. Jika kita lihat isi-nya (tabel migrations milik saya) maka akan terlihat seperti di bawah ini:


dari gambar di atas anda dapat melihat bahwa melalui fitur migrasi, saya telah membuat 7 tabel database (dari nomer id) dengan 5 langkah migrasi (dari kolom batch). 

jika saya melihat menggunakan perintah query:

 show tables;

maka di dalam database yang saya gunakan akan terlihat seperti berikut hasilnya:


Selain itu kita juga bisa melihat hasil migrasi tersebut  dengan dari internal aplikasi laravel seperti berikut:

 php artisan migrate:status

hasilnya seperti yang ditunjukkan di bawah:


perlu anda ketahui bahwa perintah di atas hanya bisa dijalankan di dalam root folder aplikasi laravel. Hasil perintah tersebut mirip kan dengan  isi tabel migrations?  

Nha sesuai dengan fungsinya untuk mengelola tabel database, fitur migrasi selain dapat digunakan untuk memuat dan mengaplikasikan tabel database, juga dapat berfungsi untuk menghapus hasil migrasi tabel database yang telah diimplementasikan.

Untuk menghapus migrasi terakhir (tabel bendera) saya tinggal menjalankan perintah:

 php artisan migrate:rollback

maka tabel bendera (dengan id 7) akan dihapus dari database seperti yang terlihat di bawah ini:



itu karena perintah migrate rollback tersebut akan menghapus hasil migrasi terakhir yang saya lakukan. Kalau dilihat di dalam tabel migrations pada database:

jika dilihat dari perintah query SHOW TABLES MySQL, maka tabel bendera akan tidak terlihat lagi:



Selain itu, perintah rollback ini juga dapat digunakan untuk menghapus beberapa tabel database yang telah dibuat sekaligus menggunakan opsi --step sesuai kolom batch, misalnya saya ingin menghapus tabel yang dibuat 3 kali migrasi sebelumnya, maka saya akan menjalankan perintah:

 php artisan migrate:rollback --step=3


maka hasilnya tabel bahasa (batch migrasi 4), tabel matauang (batch migrasi 3) dan tabel ibukota (batch migrasi 2). Karena perintah di atas digunakan untuk menghapus 3 langkah terakhir migrasi yang telah dilakukan. Jika saya jalankan lagi perintah:

 php artisan migrate:status

maka hasilnya seperti berikut:


jika saya ingin menghapus seluruh tabel yang telah dibuat dengan fungsi migrasi, maka saya tinggal menjalankan perintah:

 php artisan migrate:reset

maka seluruh tabel yang telah dimigrasikan akan dihapus dari awal sampai akhir. Berikut hasil perintah tersebut:


dari hasil diatas hanya 3 tabel yang dihapus, itu karena hanya tabel tersebut yang tersisa karena sebelumnya saya telah menghapus tabel tabel yang telah dibuat di tutorial di atas :-P

Mudah bukan menggunakan menghapus tabel database dengan fitur migrate rollback di laravel, selamat mencoba ya :-)







Comments