Maison >base de données >tutoriel mysql >Comment corriger l'erreur « Migration Laravel : la clé unique est trop longue » ?

Comment corriger l'erreur « Migration Laravel : la clé unique est trop longue » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 15:55:11248parcourir

How to Fix the

Résolution du problème « Migration Laravel : la clé unique est trop longue »

Lors de la migration d'une table d'utilisateurs Laravel, les développeurs peuvent rencontrer une erreur indiquant que la clé unique spécifiée est trop longue. Malgré la spécification explicite d'un deuxième paramètre dans la méthode unique(), comme suggéré par un fil de discussion Laravel, l'erreur persiste.

Le problème sous-jacent tourne autour de la longueur de la colonne email. La longueur par défaut de Laravel pour les colonnes de chaînes est de 255 caractères, ce qui peut être insuffisant pour les adresses e-mail.

Solution

Pour résoudre ce problème, spécifiez une longueur plus petite pour la colonne e-mail . La longueur par défaut recommandée est de 250 caractères :

$table->string('email', 250);

Cependant, il convient de noter que ce problème a été résolu dans Laravel 5.4. Pour appliquer une solution pour cette version :

Pour Laravel 5.4 et versions ultérieures

  1. Modifiez le fichier AppServiceProvider.php.
  2. Ajoutez le code suivant au boot() méthode :
use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}

Cela définit une longueur de chaîne par défaut de 191 caractères pour les colonnes de chaîne, ce qui élimine le besoin de spécifier manuellement la longueur des colonnes.

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