El problema:"La clave especificada era demasiado larga; la longitud máxima de la clave es de 767 bytes"
Uno de estos problemas con los que podría tropezar al usar el marco PHP Laravel es este:
Specified key was too long; max key length is 767 bytes
Después de investigar un poco, descubrí que aparece cuando se usan versiones anteriores de MySQL (anteriores a la 5.7.8) o MariaDB (anteriores a la 10.2.2). Fue MariaDB en mi caso.
Solución #1:
En Laravel, esto se puede resolver simplemente cambiando la configuración de su proveedor de servicios de aplicaciones (en app/Providers/AppServiceProvider.php
) con lo siguiente:
use Illuminate\Support\Facades\Schema;
public function boot()
{
/**
* Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
*
* @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
**/
Schema::defaultStringLength(191);
}
Después de esto, es posible que deba reconstruir su base de datos usando php artisan migrate:fresh --seed
- esto restablecerá completamente su base de datos y comenzará de nuevo.
Solución #2:
También puede actualizar su servidor de base de datos. Esto no se ha discutido aquí ya que es muy específico del sistema. DuckDuckGo es tu amigo 💪️