لاراول ۵.۴ : رفع مشکل Specified key was too long error

تبلیغات
کانال تلگرام فتولیا

لاراول ۵.۴ تغییری را در character set پیش فرض دیتابیس اعمال کرده است و آن را به utf8mb4 تغییر داده که می تواند emoji ها را نیز ذخیره کند. این فقط برنامه های جدید را تحت تاثیر قرار می دهد و تا زمانیکه از MySQL v5.7.7 یا نسخه های بالاتر استفاده می کنید مشکلی نخواهید داشت.

آنهایی که از MariaDB یا نسخه های قدیمی تر MySQL استفاده می کنند مثل من احتمالا با مشکل زیر روبرو خواهند بود:

[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

همانطور که در مستندات Migration لاراول آمده است، برای رفع مشکل باید فایل AppServiceProvider.php را ویرایش کرده و در داخل متد Boot آن ، کد زیر را قرار داده و طول پیش فرض رشته را تعیین کنید:

use Illuminate\Support\Facades\Schema;

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

حالا همه چیز باید درست کار کند.

منبع

 

 

در همین رابطه :   چک کردن وضعیت وجود یک Record جدول در Laravel

پاسخ دهید

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

More in HTML 5
دانلود رایگان ۱۰ قالب واکنش گرای Bootstrap

خوشبختانه خیلی از توسعه دهندگان و طراحان قالب هستند که قالب های وب سایت زیبا و رایگانی را طراحی و...

Close