Erreur de migration Laravel : limite de longueur de clé unique dépassée
Dans Laravel, lors de la création d'une migration pour ajouter une clé unique à une colonne avec un chaîne trop longue, vous pouvez rencontrer l'erreur suivante :
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Cette erreur peut souvent être résolue en spécifiant une longueur plus petite pour le colonne. La longueur par défaut d'une chaîne est de 250 caractères, ce qui devrait être suffisant pour la plupart des adresses e-mail et autres chaînes typiques.
Dans votre migration spécifique, vous avez défini la colonne e-mail comme une chaîne d'une longueur de 320. Essayez réduire cette longueur à 250 ou à la valeur par défaut :
Schema::create('users', function (Blueprint $table) { $table->string('email', 250); // or $table->string('email');
Si vous rencontrez toujours l'erreur même après avoir ajusté la longueur de la colonne, vous pouvez essayer de définir une longueur de chaîne par défaut pour votre base de données. Dans Laravel 5.4 et versions ultérieures, vous pouvez y parvenir en ajoutant ce qui suit à votre fichier AppServiceProvider.php :
use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }
Cela définira la longueur de chaîne par défaut à 191 caractères pour toutes les nouvelles colonnes créées lors des migrations.
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!