حل مشکل خطای پایگاه داده در لاراول ۵٫۴

در لاراول ۵٫۴ پایگاه داده پیش فرض تغییر کرده است و در حال حاضر به صورت utf8mb4 است که شامل پشتیبانی برای ذخیره emojis است. این تنها بر برنامه های جدید تاثیر می گذارد و تا زمانی که 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

برای رفع این مشکل باید فایل AppServiceProvider.php را ویرایش کنید و در داخل روش بوت یک طول رشته پیشفرض تنظیم کنید:

use Illuminate\Support\Facades\Schema;

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

پس باید همه چیز به طور عادی کار کند.

موفق باشید.

PHP ۹۶/۰۶/۰۳ 107 بازدید 0
http://usbcode.ir/?p=487

دیدگاه شما