Mémorandum d'erreur
Quand j'ai fait rails db: migrate
, j'ai eu la déclaration d'erreur suivante. (Erreur MySQL)
Mysql2::Error: Specified key was too long; max key length is 767 bytes
L'erreur est «La clé spécifiée est trop longue». L'ajout de plusieurs colonnes à la table dépasserait la limite de clé de 767 octets. Cette erreur se produira.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
J'obtiens une erreur à cause de la description ʻencoding: utf8mb4`.
Réécrire en ʻencoding: utf8`.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
Je ne connais pas la différence entre utf8mb4 et utf8, mais il semble que utf8mb4 peut stocker 1 à 4 octets et utf8 peut stocker 1 à 3 octets. Par conséquent, avec utf8, les pictogrammes ne peuvent pas être enregistrés, mais la capacité peut augmenter à la place. J'ai deviné.
Si vous avez déjà créé la base de données avec rails db: create
% rails db:drop
% rails db:create
Ou
% rails db:reset
Nous devons donc recréer à nouveau la base de données.
Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir le signaler. Merci pour la lecture!
Recommended Posts