Laravel pada versi 5.4 telah melakukan perubahan asali (default) pada_ character set _dengan menggunakan utf8mb4
pada basisdatanya (database). Dengan utf8mb
4 inilah, memungkin kita dapat menyimpan karakter berupa emoji ke dalam basis data (database).
Namun, masalah baru akan muncul, ketika kita menggunakan MySQL lebih rendah di bawah versi 5.7.7 (< 5.7.7) atau MariaDB lebih rendah di bawah versi 10.2.2 (< 10.2.2). Pada saat kita melakukan migrasi basis data (database migration) menggunakan artisan
. Ia akan memunculkan galat (error) seperti berikut:
“_Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes”_
Seperti gambar di bawah ini:

Oleh karenanya, kita perlu mengkonfigurasi secara manual pada berkas AppServiceProvider.php
yang bisa kita temui pada direktori /app/Providers/
.
Kita perlu menambahkan kode berikut:
... use Illuminate\Support\Facades\Schema; class AppServiceProvider extends ServiceProvider { public function boot() { Schema::defaultStringLength(191); } …
Setelah itu simpan lalu lakukan migrasi kembali dengan perintah:
php artisan migrate:rollback
Maka galat tersebut akan hilang.
Komentar