LARAVEL erreur de migration SQLSTATE[42000]

Hello,

si lors de la création de votre nouveau projet Laravel, et notamment lorsque vous souhaitez créer les tables de votre base de données via artisan en ligne de commande, vous rencontrez le message suivant :

In Connection.php line 458:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

C’est que vous êtes probablement sous MariaDB ou bien sous MySQL version inférieur à 5.7.7

Depuis la version 5.4 de Lavarel, le charset par défaut est utf8mb4 qui permet de stocker les emojis 💩

Pour résoudre ce soucis en conservant votre configuration serveur, la solution est toute simple :

Dans votre projet Lavarel, rendez-vous dans le fichier app/Providers/AppServiceProvider.php et ajoutez les deux lignes suivantes :

use Illuminate\Support\Facades\Schema;
au niveau de l’en-tête du fichier comme suit :
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
et
Schema::defaultStringLength(191);
dans la fonction public « boot » pour définir une longueur de caractère par défaut, comme suit :
public function boot()
{
//
Schema::defaultStringLength(191);
}
Et voilà ça marche !
migration artisan en ligne de commande
 

intuition

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *