Migration Laravel : Dépannage de l'erreur « Clé unique trop longue »
L'erreur « Clé unique trop longue » dans les migrations Laravel se produit lorsqu'une erreur unique index tente d'utiliser une clé qui dépasse la longueur maximale autorisée. Cette erreur peut survenir lors de la définition d'un index unique sur une colonne avec un type de données volumineux, tel qu'une adresse e-mail.
Pour résoudre ce problème, envisagez les solutions suivantes :
1. Réduisez la longueur de la colonne :
Une approche consiste à spécifier une longueur plus courte pour la colonne en question. Par exemple, dans la migration fournie, la colonne email est définie avec une longueur de 320 caractères. Pour résoudre l'erreur, essayez de réduire cette longueur à 250 caractères, qui est la longueur par défaut d'une colonne d'e-mail.
2. Remplacer la longueur de chaîne par défaut (Laravel 5.4) :
Si vous utilisez Laravel 5.4, vous pouvez remplacer la longueur de chaîne par défaut en suivant les étapes suivantes :
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
Ce code définit la longueur de chaîne par défaut à 191 caractères, ce qui devrait être suffisant dans la plupart des cas.
3. Activer les grands incréments pour la clé primaire :
Si l'erreur persiste, vérifiez si la clé primaire de la table est définie sur l'incrémentation automatique (généralement définie par incréments('id')). Si tel est le cas, essayez de le convertir en un incrément automatique de « grand entier » (bigIncrements('id')) comme suit :
<code class="php">$table->bigIncrements('id');</code>
Ce changement permet à la clé primaire d'accepter des valeurs plus grandes, libérant potentiellement certains espace dans l'index.
4. Vérifiez les autres index et clés :
Assurez-vous qu'il n'y a pas d'autres index ou clés sur la table qui pourraient contribuer à la violation de la longueur maximale de clé. S'il en existe, essayez de supprimer ou de modifier ces index pour libérer de l'espace dans la zone d'index.
En mettant en œuvre ces solutions, vous devriez être en mesure de résoudre l'erreur « clé unique trop longue » et de créer avec succès l'index unique souhaité. index sur votre table de base de données.
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!