Error Laravel [5.4]: Specified key was too long error

Buat yang baru belajar laravel ini adalah error yang biasanya ditemui ketika melakukan migrasi database dengan perintah php artisan migrate. Error ini terjadi karena karakter set database default yang digunakan laravel 5.4. Nah nilai default ini tidak cocok dengan database MariaDB atau MySql versi 5.7.7 ke bawah, padahal XAMPP yang gratisan menggunakan MariaDB.

Error yang muncul contohnya seperti berikut

Migration table created successfully.

In Connection.php line 647:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQ
L: alter table `users` add unique `users_email_unique`(`email`))

In Connection.php line 449:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Solusinya adalah dengan manambahkan beberapa kode di AppServiceProvider.php (file ini ada di folder app\Providers). Di dalam metode boot atur nilai default panjang string. Lihat potongan kode berikut.


use Illuminate\Support\Facades\Schema;

public function boot() {
Schema::defaultStringLength(191);
}

Setelah memperbaiki kode kamu seperti di atas, maka kamu bisa migrate dengan sukses. Kalau ada kesulitan memperbaiki error tersebut silakan sampaikan di kolom komentar.

Comments:0

Leave a Reply

Your email address will not be published. Required fields are marked *