Memorandum of Error
Als ich "Rails DB: Migrate" gemacht habe, habe ich die folgende Fehleranweisung erhalten. (MySQL-Fehler)
Mysql2::Error: Specified key was too long; max key length is 767 bytes
Der Fehler lautet "Der angegebene Schlüssel ist zu lang". Das Hinzufügen verschiedener Spalten zur Tabelle würde das Schlüssellimit von 767 Byte überschreiten. Dieser Fehler wird auftreten.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
Ich erhalte eine Fehlermeldung aufgrund der Beschreibung encoding: utf8mb4
.
Schreiben Sie in encoding: utf8
um.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
Ich kenne den Unterschied zwischen utf8mb4 und utf8 nicht, aber es scheint, dass utf8mb4 1 bis 4 Bytes und utf8 1 bis 3 Bytes speichern kann. Daher können mit utf8 keine Piktogramme gespeichert werden, sondern die Kapazität kann erhöht werden. Ich schätzte.
Wenn Sie die Datenbank bereits mit Rails db: create
erstellt haben
% rails db:drop
% rails db:create
Oder
% rails db:reset
Wir müssen also die Datenbank erneut erstellen.
Wenn Sie Fehler haben, würde ich mich freuen, wenn Sie darauf hinweisen könnten. Danke fürs Lesen!
Recommended Posts