Maison > base de données > tutoriel mysql > Erreur de migration Laravel : comment résoudre le problème « La clé spécifiée était trop longue » ?

Erreur de migration Laravel : comment résoudre le problème « La clé spécifiée était trop longue » ?

Barbara Streisand
Libérer: 2024-12-16 04:16:13
original
882 Les gens l'ont consulté

Laravel Migration Error: How to Fix the

Erreur de migration de Laravel : résolution du problème « La clé spécifiée était trop longue »

Lors de la tentative d'utilisation du php artisan make:auth de Laravel 5.4 commande, les utilisateurs peuvent rencontrer ce qui suit erreur :

[Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
  (SQL: alter table users add unique users_email_unique(email))
Copier après la connexion

Cause :

L'erreur se produit lorsque la longueur de la clé d'index dépasse la longueur maximale autorisée pour le moteur de base de données. Par défaut, MySQL et ses variantes ont une longueur de clé d'index maximale de 767 octets.

Solution :

Méthode 1 : mettre à jour le fournisseur de services d'application

Comme recommandé dans la documentation officielle de Laravel, ajoutez le code suivant à votre Fichier app/Providers/AppServiceProvider.php :

use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}
Copier après la connexion

Cela augmente la longueur de chaîne par défaut pour toutes les migrations à 191 caractères, ce qui est dans la limite autorisée.

Méthode 2 : Activer InnoDB Large Prefix

Alternativement, les utilisateurs peuvent activer le option innodb_large_prefix pour leur base de données MySQL. Reportez-vous à la documentation de la base de données pour savoir comment activer correctement cette option. Cette solution permet des clés d'index plus longues, ce qui la rend plus adaptée aux ensembles de données plus volumineux.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal