Dépannage des erreurs de migration de Laravel : "La clé unique est trop longue"
Lorsque vous essayez de migrer une table d'utilisateurs dans Laravel, vous pouvez rencontrer le erreur : "[IlluminateDatabaseQueryException]... La clé spécifiée était trop longue ; la longueur maximale de la clé est de 767 octets." Cette erreur se produit lorsque la clé unique que vous avez spécifiée dépasse la longueur maximale autorisée.
Comprendre le problème
La longueur de chaîne par défaut dans Laravel pour les colonnes comme l'e-mail est de 255 personnages. Lorsque vous tentez de créer une clé unique sur une colonne avec une chaîne plus longue (dans ce cas, 320 caractères pour la colonne email), la migration échoue.
Correction de l'erreur
<code class="php">$table->string('email', 250);</code>
<code class="php">$table->string('email');</code>
Dans le fichier AppServiceProvider.php, dans la méthode de démarrage, définissez la longueur de chaîne par défaut pour toutes les migrations :
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
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!