Pada kesempatan kali ini, saya kan berbagi tutorial tentang bagaimana cara mengatasi error specified key was too long pada sat proses migrations di laravel terbaru.
Jadi sejak laravel 5.4 keatas, laravel melakukan update terhadap database character set defaultnya. Pada versi tersebut laravel menambahkan utf8mb4 yang memungkinkan kita untuk menyimpan emoji di database. Namun hal ini hanya akan berpengaruh pada aplikasi baru saja, jika kalian menggunakan MySQL versi 5.7.7 atau yang terbaru maka kamu tidak perlu melakukan apa apa.
Jadi buat kalian yang menggunakan MariaDB atau MySQL versi lama (biasanya jika kalian menggunakan MySQL bawaan XAMPP yang lama), maka akan muncul error specified key was too long pada saat melakukan perintah migrations dengan php artisan.
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Nah jika kalian mengalami error seperti diatas, silahkan menggunakan solusi berikut untuk memperbaikinya. Silahkan buka
app/Providers/AppServiceProvider.php
lalu masukan kode berikut pada method boot()
.use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
Sekarang, silahkan coba lagi untuk melakukan perintah migrations dengan php artisan. Taraaaa! migrasi akan kembali normal dan sukses! Bisa lanjut ngoding lagi deh.
Akhir Kata
Sebenarnya teknik ini sudah dijelaskan di dokumentasi laravel, tetapi karena fitur ini masih baru jadi mungkin ga kelihatan kalau sudah ada section baru di dokumentasi laravel. Jadi, jangan lupa untuk terus cek update terbaru saat berpindah versi di laravel.
Okee, skeian dulu untuk tutorial tentang cara memperbaiki error specified key was too long pada saat melakukan migrations di laravel. Semoga bermanfaat dan tetap ngoding yah!
0 Komentar