Wenn Sie Rails db: migrate
ausführen
Ich habe folgenden Fehler erhalten!
StandardError: An error has occurred, all later migrations canceled:
Wörtlich übersetzt bedeutet dies, dass alle nachfolgenden Migrationen aufgrund eines Fehlers abgebrochen wurden.
Außerdem erhalte ich diesen Fehler.
Mysql2::Error: Specified key was too long; max key length is 767 bytes
Dieser Fehler scheint aufzutreten, weil der angegebene Schlüssel zu lang ist. Die Schlüssellänge von max scheint 767 Bytes zu betragen.
Die Schlüssellänge beträgt maximal 767 Byte, aber es scheint, dass ein Fehler aufgetreten ist, weil der Schlüssel zu lang ist.
Für den 255-stelligen VARCHER-Typ, der standardmäßig von Rails generiert wird
◎ ** utf8mb4 ist 4 Bytes pro Zeichen **, 255 x 4 Bytes = 1020 Bytes Ein Fehler tritt auf, weil er 767 Bytes überschreitet.
Ändern Sie die Zeichencode-Spezifikation in ** utf8 **
◎ utf8 ist 3 Bytes pro Zeichen, 255 x 3 Bytes = 765 Bytes
Es passt fast genau, also ist dies die Lösung!
database.yml
default: &default
encoding: utf8
Führen Sie eine "Bundle-Installation" durch und starten Sie mit "Rails s" neu!
danach,
$ rails db:migrate:reset
Sie sind erfolgreich migriert!
Recommended Posts