Erreur de migration Laravel : la longueur de la clé unique dépasse la limite
Lors de la tentative de migration d'une table d'utilisateurs dans Laravel à l'aide d'une migration, les développeurs peuvent rencontrer le erreur : "[SQLSTATE[42000] : Erreur de syntaxe ou violation d'accès : 1071 La clé spécifiée était trop longue ; la longueur maximale de la clé est 767 octets." Cette erreur se produit généralement lorsque la clé unique spécifiée est plus longue que la longueur maximale autorisée.
Énoncé du problème
La migration fournie tente de créer une table d'utilisateurs avec une clé unique dans la colonne email. Cependant, la colonne e-mail est spécifiée pour avoir une longueur de 320 caractères, dépassant la limite de longueur maximale.
Solution
1. Réduire la longueur de la colonne d'e-mail
Réduisez la longueur de la colonne d'e-mail à une valeur plus petite, telle que 250 ou la valeur par défaut de 191 caractères. Ajustez la migration comme suit :
Schema::create('users', function(Blueprint $table) { // ... $table->string('email', 250); // Update the email column length // ... });
2. Définir la longueur de chaîne par défaut (Laravel 5.4)
Si vous utilisez Laravel 5.4 ou une version ultérieure, vous pouvez définir une longueur de chaîne par défaut dans la méthode de démarrage du fichier AppServiceProvider.php :
public function boot() { Builder::defaultStringLength(191); }
Cela définira une longueur par défaut de 191 caractères pour toutes les colonnes de chaînes créées lors des migrations, garantissant que les clés uniques ne dépassent pas la longueur autorisée. longueur.
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!