Laravel 5.4 membuat sebuah perubahan pada default database character set menggunakan utf8mb4 yang mana mendukung untuk menyimpan emoji. Pembaharuan ini hanya mendukung pada sistem yang menjalankan MySQL v5.7.7 atau lebih tinggi.

Pada sistem yang menjalankan MariaDB atau versi MySQL yang lebih rendah maka akan keluar error pada saat kita menjalankan migration.

[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

Berdasarkan dokumentasi yang diberikan laravel untuk menyelesaikan masalah ini, kita mengedit file AppServiceProvider.php dan didalam method boot kita mengganti default string length.

Setelah itu kita dapat menjalankan perintah php artisan migrate kembali, dan seharusnya semua sudah berjalan dengan normal kembali.

Selamat Ngoprek 😀

Leave a Reply

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