Datenbank auf UTF-8 umstellen

Hallo zusammen,

ich will meinen Shop, der momentan auf Latin1 läuft, auf UTF-8 umstellen. Das Problem wovor ich gerade stehe sind die Kollationen der Datenbanktabellen.

Muss ich die in jeder Spalte umstellen oder gibt es eine einfachere Möglichkeit?
Ist es überhaupt möglich die Kollation zu ändern ohne die Daten zu zerstören?

Bin für jeden Tipp/Hinweis dankbar!

Grüße,
Jasin2k

Grundsätzliches kannst Du hier nachlesen:
http://forum.mysqldumper.de/die-umlautproblematik-was-wieso-was-tun-t2313.html

Es gibt einige Scripte, die eine Konvertierung durchführen:
http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/
http://www.mountcrow.de/entwicklung/codeschnipsel-mysql-datenbanken-in-utf8-konvertieren/

Und wenn Du eine ältere OXID-Version hast, kannst Du auch diese Scripte verwenden:

GANZ WICHTIG!!! Vorher unbedingt ein Backup machen und sicher sein, dass das Zurückspielen im Falle eines Falles auch funktioniert.

Auf dem Artikel basiert der Mythos dass Mysql intern alles in utf-8 speichert. Die Skripte würde ich mit Vorsicht anwenden, z.B. das erste ist nur für den Sonderfall gedacht dass die Daten bereits in utf-8 sind, die Tabellenspalte aber fälschlicherweise auf ISO. Die anderen gehen prinzipiell, ändern aber eigentlich zu viel weil nicht alle Spalten utf-8 sein müssen. Ich hab mal die Update-Dateien von Oxid angepasst so dass sie unter 4.7 laufen, das Ergebnis sieht auf den ersten Blick gut aus, aber man könnte nochmal alle Statements aus der SQL-Datei durchschauen und mit einer frischen Installation vergleichen ob irgendwo neue Spalten dazugekommen sind die auch umgewandelt werden sollten.

Ich habe das dritte Script etwas umgeändert und ausprobiert. Es werden zwar nur die Spalten umgeändert die auch String beinhalten, aber meine Umlaute hat er mir trotzdem zerschossen -.- Zum Glück nur auf ner Test-Datenbank.

@leofonic: Danke! Werde es gleich mal ausprobieren :slight_smile:

Danke Frank! Stellst Du das auf Github?

done: https://github.com/leofonic/oxid_utf8update

Danke Dir!