[RUBY] Schienen db: Migration fehlgeschlagen!

Fehler beim Ausführen von Rails db: migrate

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.

Hypothese dieses Fehlers

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.

Lösung

Ä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

Schienen db: Migration fehlgeschlagen!
[Rails] Migrationsdatei ändern (Rails DB: Rollback)
Schienen db: 〇〇 Zusammenfassung
[Rails] Migrationsdatei ändern (Rails db: rollback STEP =)
[heroku] run rail db: migrieren funktioniert nicht
[Rails] Rails DB-Befehlsübersicht
Was macht [Rails DB: Migrieren]?
Schienen testen db nur fallen
Fehler in db: migrate: reset
PG :: DatatypeMismatch-Fehler beim Heroku-Ausführen von Rails db: migrate
[Rails] Anzeigen von Datenbankinformationen
[Persönliche Anmerkung] Berücksichtigung des Rails DB-Index
[Rails] DB-Design für EC-Standort
Die Geschichte, mit der ich zu kämpfen hatte, weil ich "Rails db: migrate" nicht machen konnte.
Rails DB PostgreSQL wurde in MySQL geändert
ArgumentError: Unbekannter Validator: 'UniqunessValidator' in Rake-Datenbank: migrieren
[Schienen] Speichern Sie nur markierte Elemente in der Datenbank