Maison  >  Article  >  développement back-end  >  Comment corriger l'erreur de migration Laravel « La clé unique est trop longue, même si elle est spécifiée » ?

Comment corriger l'erreur de migration Laravel « La clé unique est trop longue, même si elle est spécifiée » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 04:48:02956parcourir

How to Fix

Erreur de migration Laravel : "La clé unique est trop longue, même si elle est spécifiée"

Des erreurs de migration Laravel peuvent survenir lors de la création de clés uniques pour les colonnes qui dépassent la longueur maximale autorisée. Dans le scénario donné, l'utilisateur a rencontré ce problème en tentant de migrer une table d'utilisateurs avec une colonne d'e-mail d'une longueur de 320 caractères.

Le message d'erreur indique que la clé spécifiée (e-mail) est trop longue. , avec une longueur de clé maximale de 767 octets. Pour résoudre ce problème, la solution recommandée est de réduire la longueur de la colonne email.

La longueur par défaut d'une colonne de chaîne dans Laravel est de 250 caractères. En définissant la colonne de courrier électronique sur cette longueur, la migration devrait réussir sans l'erreur de longueur de clé unique. Alternativement, la colonne de courrier électronique peut être définie sur une longueur plus petite en fonction des exigences spécifiques de l'application.

Pour Laravel 5.4 et supérieur, une solution supplémentaire est disponible. En modifiant le fichier AppServiceProvider.php et en définissant une longueur de chaîne par défaut dans la méthode de démarrage, la longueur maximale de toutes les colonnes de chaîne peut être ajustée.

En définissant Builder::defaultStringLength sur une valeur plus petite, telle que 191. , l'erreur devrait être résolue et la migration peut se dérouler avec succès.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn