Ich denke, StringLenght auf 191 zu zwingen, ist eine wirklich schlechte Idee. Also untersuche ich, um zu verstehen, was los ist.
Ich habe festgestellt, dass diese Meldung Fehler:
SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1071 Der angegebene Schlüssel war zu lang. Die maximale Schlüssellänge beträgt 767 Byte
Wurde angezeigt, nachdem ich meine MySQL-Version aktualisiert habe. Also habe ich die Tabellen mit PHPMyAdmin überprüft und festgestellt, dass alle neu erstellten Tabellen mit der Sortierung utf8mb4_unicode_ci anstelle von utf8_unicode_ci für die alten Tabellen erstellt wurden .
In meiner Doctrine-Konfigurationsdatei habe ich festgestellt, dass der Zeichensatz auf utf8mb4 festgelegt wurde, aber alle meine vorherigen Tabellen in utf8 erstellt wurden. Ich denke, dies ist eine Update-Magie, die auf utf8mb4 funktioniert.
Die einfache Lösung besteht nun darin, den Zeilenzeichensatz in Ihrer ORM-Konfigurationsdatei zu ändern. Löschen Sie dann die Tabellen mit utf8mb4_unicode_ci, wenn Sie sich im Entwicklungsmodus befinden, oder korrigieren Sie den Zeichensatz, wenn Sie sie nicht löschen können.
Für Symfony 4
Ändern Sie charset: utf8mb4 in charset: utf8 in config / packages / doct ..yaml
Jetzt funktionieren meine Doktrinenmigrationen wieder einwandfrei.