Laravel: Specified key was too long hatası


Laravel 5.4 itibariyla default veritabanı karakter setini utf4mb4 olarak değiştir. Böylece emojileri de saklayabiliyoruz. Fakat mySQL 5.7.7'den önceki sürümlerde aşağıdaki hatayı ver

[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

Bu konuda laravel'in sitesindeki migrasyon rehberinde çok basit bir düzenleme öneriliyor. AppServiceProvider.php dosyasında bulunan boot metodunda karakter uzunluğunu belirtmeniz yeterli olacaktır.

use Illuminate\Support\Facades\Schema;
public function boot() {
Schema::defaultStringLength(191);
}


Yorum Gönder

Daha yeni Daha eski