Dépannage de l'erreur de migration de Laravel : longueur de clé unique dépassée
Lorsque vous essayez de créer une clé unique pour une colonne de courrier électronique dans Laravel, vous pouvez rencontrer l'erreur suivante :
[IlluminateDatabaseQueryException] 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 de 767 octets
Bien que vous ayez spécifié la clé d'index comme deuxième paramètre de la méthode unique(), l'erreur persiste. Cela est probablement dû à la longueur de la colonne email.
Solution pour les versions de Laravel antérieures à 5.4 :
Pour résoudre cette erreur, réduisez la longueur de la colonne email. . La longueur par défaut est de 250 caractères, modifiez donc la ligne suivante dans votre migration :
$table->string('email', 250);
Alternativement, vous pouvez utiliser la longueur par défaut :
$table->string('email');
Solution pour Laravel 5.4 et ci-dessus :
Dans Laravel 5.4, vous pouvez définir une longueur de chaîne par défaut pour éviter cela erreur. Dans votre fichier AppServiceProvider.php, ajoutez le code suivant à la méthode de démarrage :
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
Cela garantira que toutes les colonnes de chaîne utilisent une longueur maximale de 191 caractères.
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!