Привет. Если вы пишите или только начинаете работать с Laravel, то наверное столкнулись с проблемой при миграции: ошибкой Specified key was too long error. Она возникает из-за того, что ваш MySQL сервер не поддерживает такую длинну индексов, которую хочет Laravel. Но это не страшно.

Ошибка выглядит приблизительно вот так:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t  
  oo long; max key length is 767 bytes (SQL: alter table `users` add unique `  
  users_email_unique`(`email`))

Как преодолеть ошибку Specified key was too long error?

Всё очень просто. Для того, чтобы эта ошибка больше не возникала, нужно либо обновить MySQL сервер до последней версии (не самое простое и быстрое решение) либо настроить Laravel так, чтобы он создавал индексы с меньшим размером. Этим сейчас и займёмся.

Для того, чтобы это сделать откройте файл AppServiceProvider.php, который находится в app/Providers/.

В функцию boot добавте следующий код: Schema::defaultStringLength(191);

А в начало файла добавте use Illuminate\Support\Facades\Schema; чтобы сообщить Laravel, что тут дело пойдет с фасадом Schema.

Всё вместе на свежей инсталяции Laravel будет приблизительно вот так (если ещё не делались правки в AppServiceProvider.php:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Тем временем, рекомендуем почитать Conversion: Маркетинг и арбитраж трафика – только полезные и интересные статьи про арбитраж, бесплатное обучение маркетингу и SMM. Действительно достойное внимания медиа. Для начинающих и бывалых арбитражников, а также для просто интересующихся интернет-маркетингом.

Понравилась или помогла статья?
Купите мне кофеКупите мне кофе