Masalah:"Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 767 byte"
Salah satu masalah yang mungkin Anda temui saat menggunakan framework PHP Laravel adalah yang ini:
Specified key was too long; max key length is 767 bytes
Setelah beberapa penelitian, saya menemukan itu muncul ketika menggunakan versi MySQL yang lebih lama (sebelum 5.7.8) atau MariaDB (sebelum 10.2.2). Itu adalah MariaDB dalam kasus saya.
Solusi #1:
Di Laravel ini dapat diselesaikan hanya dengan mengubah konfigurasi penyedia layanan aplikasi Anda (di app/Providers/AppServiceProvider.php
) dengan berikut ini:
use Illuminate\Support\Facades\Schema;
public function boot()
{
/**
* Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
*
* @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
**/
Schema::defaultStringLength(191);
}
Setelah ini, Anda mungkin perlu membangun kembali database Anda menggunakan php artisan migrate:fresh --seed
- ini akan menyetel ulang database Anda sepenuhnya dan memulai dari awal.
Solusi #2:
Anda juga dapat mengupgrade server database Anda. Ini belum dibahas di sini karena sangat khusus untuk sistem. DuckDuckGo adalah temanmu ️