Laravel: Nothing to Migrate
Mengatasi masalah migrasi database di Laravel
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.
Folder dan file Laravel tersebut masih baru dan hanya mengganti konfigurasi database di file .env
saja.
Kenapa
artisan
bukanphp artisan
? Saya menggunakan alias di Linux
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.
Analisa Masalah
Pesan error didapat saat menjalankan artisan menggunakan ekstensi vsode Laravel Artisan yang isinya seperti berikut:
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:
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.