Solución a SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
Me he encontrado frecuentemente con este error cuando estoy haciendo una migración de una aplicación de Laravel a un servidor productivo con base de datos mySQL, afortunadamente es muy sencillo de corregir.
En el archivo \app\Http\Providers\AppServiceProvider.php
hay que añadir la siguiente línea en el método boot()
:
Schema::defaultStringLength(191);
Y no olvidar también añadir
use Illuminate\Support\Facades\Schema;
al principio del archivo, de esta forma, un archivo con estas mínimas modificaciones debe quedar de la siguiente manera:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
//
}
public function boot()
{
//
Schema::defaultStringLength(191);
}
}