Dépannage "Mysql::Erreur : la clé spécifiée était trop longue ; la longueur maximale de la clé est de 1 000 octets"
Lors de la tentative d'exécution de ce qui suit commandes :
script/generate acts_as_taggable_on_migration rake db:migrate
vous pouvez rencontrer le erreur :
Mysql::Error: Specified key was too long; max key length is 1000 bytes: CREATE INDEX `index_taggings_on_taggable_id_and_taggable_type_and_context` ON `taggings` (`taggable_id`, `taggable_type`, `context`)
Cause
Cette erreur se produit en raison des restrictions imposées par les moteurs de stockage de MySQL sur la taille des index. Les moteurs MyISAM, couramment utilisés avec Ruby on Rails, limitent la taille des index à 1 000 octets.
Solution
Pour résoudre ce problème, envisagez les stratégies suivantes :
CREATE INDEX example_idx_id ON YOUR_TABLE(taggable_id) CREATE INDEX example_idx_type ON YOUR_TABLE(taggable_type)
Configuration supplémentaire
Comme l'indiquent les paramètres d'encodage de votre base de données, votre base de données est configuré pour utiliser le codage de caractères latin1. Cela peut limiter l'efficacité des index sur les colonnes utilisant le codage UTF-8. Pour améliorer les performances de l'index, envisagez de convertir votre base de données au codage UTF-8.
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!