Maison >base de données >tutoriel mysql >Erreur de migration Laravel : comment résoudre le problème « La clé spécifiée était trop longue » ?
Erreur de migration de Laravel : résolution du problème « La clé spécifiée était trop longue »
Lors de la tentative d'utilisation du php artisan make:auth de Laravel 5.4 commande, les utilisateurs peuvent rencontrer ce qui suit erreur :
[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))
Cause :
L'erreur se produit lorsque la longueur de la clé d'index dépasse la longueur maximale autorisée pour le moteur de base de données. Par défaut, MySQL et ses variantes ont une longueur de clé d'index maximale de 767 octets.
Solution :
Méthode 1 : mettre à jour le fournisseur de services d'application
Comme recommandé dans la documentation officielle de Laravel, ajoutez le code suivant à votre Fichier app/Providers/AppServiceProvider.php :
use Illuminate\Support\Facades\Schema; /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
Cela augmente la longueur de chaîne par défaut pour toutes les migrations à 191 caractères, ce qui est dans la limite autorisée.
Méthode 2 : Activer InnoDB Large Prefix
Alternativement, les utilisateurs peuvent activer le option innodb_large_prefix pour leur base de données MySQL. Reportez-vous à la documentation de la base de données pour savoir comment activer correctement cette option. Cette solution permet des clés d'index plus longues, ce qui la rend plus adaptée aux ensembles de données plus volumineux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!