رفع خطا Specified key was too long در لاراول

رفع خطا Specified key was too long در لاراول

احتمالا شما هم به دلیل بروزرسانی نکردن نسخه Mysql یا MariaDB خود از نسخه 5.4 به بعد در لاراول، در نصب Migrate ها به خطا Specified key was too long برخورد کرده اید. این خطا به دلیل استفاده لاراول از utf8mb4 می باشد. حال شما می توانید Mysql یا MariaDB خودتون رو بروز کنید و یا با استفاده از یک کد ساده جلو خطا زیر را بگیرید:

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")

جهت حل این مسئله، کد زیر را به فایل AppServiceProvider.php اضافه کنید.

use Illuminate\Support\Facades\Schema;

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

فایل خود را ذخیره کنید و به کار خود ادامه دهید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *