Laravel: Nothing to Migrate

Mengatasi masalah migrasi database di Laravel

Khoironi Kurnia Syah
Sainseni
Published in
3 min readMay 12, 2022

--

Mengatasi masalah migrasi database di Laravel
Photo by Mohammad Rahmani on Unsplash

Laravel adalah salah satu framework PHP dengan struktur MVC paling populer yang awalnya dibuat oleh Taylor Otwell pada tahun 2011. Karena Laravel cukup popular, perusahaan pun banyak yang menggunakan Laravel untuk membantu mereka dalam membangun aplikasi berbasis website. Contohnya seperti perusahaan tempat saya magang saat ini (Program Virtual Internship Experience).

Singkat cerita, saya telah menyelesaikan tugas-tugas kecil dalam rangka magang dan tiba juga saatnya untuk membuat sebuah aplikasi sederhana sebagai tugas akhir. Tugas tersebut mengharuskan kami menggunakan framework Laravel.

Laravel memiliki fitur yaitu Migrations untuk membuat skema database tanpa langsung membuatnya di database management tool seperti phpMyAdmin, yang kemudian saya coba buat.

Setelah membuat skema yang diperlukan, selanjutnya saya menjalankan perintah php artisan migrate pada terminal untuk membuat tabel-tabel berdasarkan skema yang telah kita buat ke dalam database.

Saat ini saya menggunakan: Linux Mint xfce 20.3 “Una”, PHP 8.1.5, dan composer 2.3

Masalah

Masalah timbul saat saya menjalankan migrasi mengunakan artisan yang hasilnya tidak sesuai harapan.

Konfigurasi database dan file migrasi awal
Konfigurasi database dan file migrasi awal

Folder dan file Laravel tersebut masih baru dan hanya mengganti konfigurasi database di file .env saja.

Nothing to migrate
Menjalankan perintah tambahan
Menjalankan perintah tambahan

Kenapa artisan bukan php artisan ? Saya menggunakan alias di Linux

Tampilan pada phpmyadmin
Tampilan pada phpmyadmin

Saat migrasi yang terjadi hanya pembuatan table migrations saja, sedangkan tabel lain tidak terbuat.

Setelah sekian lama berselancar di google untuk mencari solusi yang akhirnya tidak terselesaikan, akhirnya saya coba analisa sendiri.

Saya coba menggunakan ekstensi vsode yaitu Laravel Artisan untuk melakukan perintah migrasi dan menemukan pesan error.

Laravel Artisan Log
Laravel Artisan Log

Analisa Masalah

Pesan error didapat saat menjalankan artisan menggunakan ekstensi vsode Laravel Artisan yang isinya seperti berikut:

Menjalankan perintah artisan dan menemukan error
Menjalankan perintah artisan dan menemukan error

Pesan tersebut didapat dari ekstensi Laravel Artisan bukan dari Laravel langsung.

Karena terdapat perintah untuk mengganti directory maka saya asumsikan saat itu yang menjadi penyebab masalah awal adalah nama folder.

Perintah gagal saat menjalankan perintah cd ke folder

/home/zekhoi/medium/[folder] 1/coba/

yang mana nama folder [folder] 1 menjadi penyebab utama karena menggunakan simbol sehingga tidak terbaca.

Solusi

Sebenarnya masalah bisa terselesaikan apabila nilai pada folder perintah cd tersebut menyesuaikan simbol, seperti contohnya:

cd /home/zekhoi/medium/\[folder\]\ 1/coba/

Setelah menemukan bahwa masalah diakibatkan karena nama folder yang unik, maka saya coba untuk mengubah folder tersebut.

Mengubah [folder] 1 menjadi folder1

sehingga directory yang dituju menjadi:

/home/zekhoi/medium/folder1/coba/

Selanjutnya saya coba untuk melakukan perintah migrasi menggunakan artisan dan hasilnya:

Migrasi berhasil
Migrasi berhasil

Kesimpulan

Jadi, masalah tersebut ternyata disebabkan oleh penamaan folder yang memiliki simbol, sehingga tidak terbaca pada perintah cd. Namun sebenarnya apabila mendapatkan pesan Nothing to migrate. masalahnya tidak selalu karena penamaan folder, contohnya seperti artikel ini.

Referensi

Setelah selesai menulis artikel ini saya menemukan solusi tersebut di forum Laracast yang baru saya temukan, haha.

--

--