Manipulasi data dengan fitur migrasi pada Laravel 10

Oleh Ridwan Nursamsi di 25 Sep 2025 | 20:27
Ridwan Nursamsi

Ridwan Nursamsi

Siswa
Postingan: 1
Anggota sejak: 9 Sep 2025

Penjelasan :

Hallo semua, pada topik kali ini saya akan memberikan hasil eksplorasi mandiri mata kuliah framework menggunakan laravel terkait fitur migrasi (migration). Sebelum masuk ke pembahasan, kita perlu mengetahui terlebih dahulu apa itu migrasi. Intinya, migrasi merupakan fitur pada framework Laravel yang digunakan untuk membuat sebuah skema atau kerangka database yang meliputi tabel dan strukturnya, sekaligus mengelola tabel-tabel tersebut tanpa harus menulis query SQL secara langsung.


Seperti yang sudah dibahas di atas, migrasi biasanya dipakai untuk mengelola tabel. Berdasarkan dokumentasi Laravel versi 10, fitur migrasi ini menjelaskan pengelolaan database seperti membuat tabel, melakukan perintah up maupun down, rollback, dan sebagainya. Namun, untuk manipulasi isi data tidak dijelaskan secara rinci apakah boleh atau tidak dilakukan pada fitur ini. Karena hal tersebut, saya mencoba bereksperimen untuk mengetahui apakah manipulasi data dapat dilakukan di dalam migrasi. Dari dasar itu pula saya membawakan topik ini agar bisa memberikan wawasan baru terkait apa yang sudah saya pelajari.


Sebelum praktik, saya perlu menyampaikan disclaimer bahwa topik ini tidak relevan dengan best practice. Biasanya, untuk manipulasi data sendiri jika masih dalam tahap development atau belum dipublikasikan sebaiknya menggunakan seeder, karena fitur tersebut memang khusus untuk mengelola data seperti data dummy. Sementara itu, jika sudah masuk tahap production lebih baik menggunakan Eloquent karena berhubungan langsung dengan interaksi antara pengguna dan sistem. Jadi, masing-masing fitur sebenarnya sudah memiliki fungsinya masing-masing.


Praktik :

Pertama buat dahulu empat file migrasi yaitu sekolah, insert, update, delete :

1. Buat dahulu table sekolah di salin :

- php artisan make:migration create_sekolah

- isinya bisa dilihat di lampiran gambar_table_sekolah


- php artisan migrate

2. Lalu isi datanya :

- php artisan make:migration create_insert_sekolah

- isinya bisa dilihat di lampiran gambar_insert_sekolah (harus pakai package façade/db karena query builder)

- php artisan migrate

3. Lalu kita update :

- php artisan make:migration create_update_sekolah

- isinya bisa dilihat di lampiran gambar_update_sekolah (harus pakai package façade/db karena query builder)

- php artisan migrate

4. terakhir delete :

- php artisan make:migration create_delete_sekolah

- isinya bisa dilihat di lampiran gambar_delete_sekolah (harus pakai package façade/db karena query builder)

- php artisan migrate

5. untuk rollback ke awal lakukan :

- php artisan migrate:rollback --step=4 (perintah ini akan mengembalikan migrasi dari 4 batch terakhir, bisa dilihat di table migration pada database batchnya naik ketika migrasi baru).


Hasilnya bisa kalian lihat di masing-masing database, perubahannya terjadi dalam 4 batch. Kode memang berjalan dengan baik, akan tetapi melakukan metode ini tidak sesuai dengan best practice, karena fitur pada Laravel sebenarnya sudah memiliki fungsinya masing-masing. Migration sebaiknya digunakan khusus untuk mengelola struktur database, sedangkan pengelolaan data lebih tepat dilakukan menggunakan seeder maupun Eloquent sesuai preferensi masing-masing.

Hal ini karena migrasi dirancang agar bersifat konsisten, mudah dirollback, dan dapat dijalankan berulang kali tanpa menimbulkan konflik. Jika manipulasi data diletakkan di dalam migrasi, maka saat dilakukan rollback bisa berpotensi menimbulkan inkonsistensi data, error, bahkan kehilangan data penting. Dengan memisahkan fungsi antara migration, seeder, dan Eloquent, proses pengembangan maupun pemeliharaan sistem menjadi lebih terstruktur, aman, dan sesuai standar praktik yang dianjurkan.
25 Sep 2025 | 20:27
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.